什麼是將字符串的長度增加到任意整數x的簡單方法?像'a'轉到'z',然後轉到'aa'到'zz'到'aaa'等。通過循環增加字符串大小
回答
這應該做的伎倆:
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
它返回一個發電機。 您可以用迭代它的循環:
for s in iterate_strings(5)
或取得字符串列表:如果你想遍歷短串過
list(iterate_strings(5))
,您可以使用此功能:
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
儘管它倒退,很酷! – calccrypto 2010-05-14 23:52:11
修復了倒退的問題。 我的回答請投票:) – Adam 2010-05-14 23:53:59
我試過了,但顯然我需要15個聲望 – calccrypto 2010-05-15 00:02:10
您可以乘以整數中的字符串。 例如
>>> 'a' * 2
'aa'
>>> 'a' * 4
'aaaa'
>>> 'z' * 3
'zzz'
>>> 'az' * 3
'azazaz'
是的,但我想穿過所有的排列組合 – calccrypto 2010-05-14 23:38:58
讓我們看看我是否正確:您想遍歷'aaaa'和'zzzz'之間的所有字符串,('aaaa','aaab','aaac' ,....'zzzz')。 – Adam 2010-05-14 23:43:00
正確。直到字符串爲x字符長 – calccrypto 2010-05-14 23:48:03
這是我的解決方案,類似於亞當的,除非它不遞歸。 :]
。
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)
,它返回一個generator
,所以你可以使用一個for
循環遍歷它:
for letters in letter_generator(5):
# ...
玩得開心!
(這是今天第二次我發現itertools.product()
有用。活泉。)
- 1. 通過字符串循環保持僅數字和小數點
- 2. 通過循環Printring字符串
- 3. 通過循環連接字符串
- 4. TWIG - 通過字符串循環
- 5. 通過JSON字符串循環訪問
- 6. For循環通過一個字符串
- 7. 循環回通過字符串數組
- 8. VIM:通過字符串循環
- 9. 在ReactJs中,通過循環字符串
- 10. 德爾福 - 通過字符串循環
- 11. Grepl in for循環,通過字符串
- 12. PHP - 字符串連接 - 通過循環
- 13. RapidJSON通過字符串數組循環?
- 14. C++通過字符串循環
- 15. C#:循環通過在字符串
- 16. 通過字符串循環來檢查特定的大小寫匹配
- 17. 通過for循環及時增加值
- 18. C#:通過多行字符串循環循環
- 19. 循環通過字符串使用for循環
- 20. Java - 通過字符串數組進行循環循環
- 21. 如何通過循環將字符串添加到字符串數組列表
- 22. For循環增值通過
- 23. 通過循環將字符串對象添加到數組
- 24. 通過for循環向列表中添加字符串xna
- 25. 如何通過在字符串的末尾添加循環編號來更改FOR循環中的字符串?
- 26. 通過std循環的分段錯誤字符串按字符
- 27. Java計算器 - 通過字符串數組循環字符
- 28. 通過字符串彙編循環來計算字符數
- 29. 通過字符數組和循環字符循環
- 30. 增加字符串的字體大小和樣式
哪裏'x'進來嗎?就像字符串是「abc」而「x」是4,字符串變成「abg」? – 2010-05-14 23:36:24
oops。我的意思是說,字符串變成x長,所以如果x = 4,字符串將是'aaaa'...''zzzz' – calccrypto 2010-05-14 23:38:04
有點相關,請參閱[this code golf](http://stackoverflow.com/questions/) 2634427 /代碼高爾夫球數字相當於-的-AN-Excel的列名稱/)。 – 2010-05-15 12:36:15