cách đơn giản để tăng độ dài của chuỗi thành số nguyên tùy ý x là gì? như 'a' đi tới 'z' và sau đó chuyển đến 'aa' thành 'zz' thành 'aaa', v.v.tăng kích thước chuỗi qua vòng
Trả lời
Điều đó sẽ làm các trick:
def iterate_strings(n):
if n <= 0:
yield ''
return
for c in string.ascii_lowercase:
for s in iterate_strings(n - 1):
yield c + s
Nó trả về một máy phát điện. Bạn có thể lặp lại điều đó với một vòng lặp for:
for s in iterate_strings(5)
Hoặc có được một danh sách các chuỗi:
list(iterate_strings(5))
Nếu bạn muốn để lặp qua chuỗi ngắn quá, bạn có thể sử dụng chức năng này:
def iterate_strings(n):
yield ''
if n <= 0:
return
for c in string.ascii_lowercase:
for s in iterate_strings(n - 1):
yield c + s
mặc dù nó đi ngược lại, tuyệt vời! – calccrypto
Đã khắc phục sự cố về sau. Bình chọn cho câu trả lời của tôi xin vui lòng :) – Adam
tôi đã cố gắng, nhưng dường như tôi cần 15 danh tiếng – calccrypto
Bạn có thể nhân chuỗi trong số nguyên. Ví dụ:
>>> 'a' * 2
'aa'
>>> 'a' * 4
'aaaa'
>>> 'z' * 3
'zzz'
>>> 'az' * 3
'azazaz'
có, nhưng tôi muốn chạy qua tất cả các hoán vị – calccrypto
Hãy xem liệu tôi có đúng không: Bạn muốn lặp qua tất cả các chuỗi giữa 'aaaa' và 'zzzz', ('aaaa', 'aaab', 'aaac' , .... 'zzzz'). – Adam
chính xác. cho đến khi chuỗi ký tự x dài – calccrypto
Xác định x. Tôi đang sử dụng x = 5
cho ví dụ này.
x = 5
import string
for n in range(1,x+1):
for letter in string.ascii_lowercase:
print letter*n
Đây là giải pháp của tôi, tương tự như của Adam, ngoại trừ nó không đệ quy. :]
.
from itertools import product
from string import lowercase
def letter_generator(limit):
for length in range(1, limit+1):
for letters in product(lowercase, repeat=length):
yield ''.join(letters)
Và nó trả về một generator
, vì vậy bạn có thể sử dụng một vòng lặp for
để lặp qua nó:
for letters in letter_generator(5):
# ...
Hãy vui vẻ!
(Đây là lần thứ hai hôm nay tôi tìm thấy itertools.product()
hữu ích. Woot.)
- 1. Tăng kích thước Multiarray
- 2. Tăng kích thước hit của nút radio
- 3. Kích thước của chuỗi
- 4. băm chuỗi kích thước
- 5. tăng kích thước heap java vĩnh viễn?
- 6. JAVA_OPTS để tăng kích thước heap
- 7. Tăng kích thước phông chữ trong Firebug?
- 8. động có kích thước tăng :: ASIO :: đệm
- 9. C++ vs2010 tăng kích thước ngăn xếp
- 10. Kích thước Heap JavaScript và Chrome Tăng
- 11. python - kích thước vòng lặp có thể gọi?
- 12. Thay đổi kích thước của ImageMagick PNG Tăng kích thước tệp
- 13. Cách tăng kích thước phông chữ trong cảnh báo javascript()
- 14. Tăng kích thước heap trong m2e Plugin Eclipse
- 15. C# lý do thay đổi kích thước hình ảnh sẽ tăng kích thước tệp
- 16. Tăng kích thước bộ đệm SPI trong Raspbian
- 17. Khi nào nó thích hợp để tăng kích thước chuỗi không đồng bộ từ số không?
- 18. Tại sao chỉ mục chuỗi trong mảng javascript không tăng kích thước chiều dài?
- 19. vòng lặp để mảng có kích thước khác nhau
- 20. Kích thước DialogFragment (width) bỏ qua
- 21. Kích thước mảng C qua gdb
- 22. Đo kích thước chuỗi theo Byte trong php
- 23. Tăng kích thước của một tập tin sử dụng mmap
- 24. Tăng giới hạn kích thước tải lên tệp trong iis6
- 25. Free size kích thước đống không tăng trong Maven
- 26. Tăng kích thước thanh cuộn Tự động hoàn thành
- 27. Tăng kích thước heap trong java cho weka
- 28. Tăng kích thước ngăn xếp khi biên dịch với mingw?
- 29. Làm cách nào để tăng kích thước cửa sổ DOXBox?
- 30. Tăng kích thước của các góc nóng Win8?
'x' ở đâu? Giống như nếu chuỗi là "abc" và 'x' là 4, chuỗi sẽ trở thành" abg "? –
oops. tôi có nghĩa là để nói chuỗi trở thành x dài, vì vậy nếu x = 4, các chuỗi sẽ là 'aaaa' ... 'zzzz' – calccrypto
Hơi liên quan, xem [mã này golf] (http://stackoverflow.com/questions/ 2634427/code-golf-số-tương đương-of-an-excel-column-name /). –