所以我有一個字符串,例如「AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN」。Python迭代字符串
我想能夠循環超過16個字符開始並打印它。然後向上移動1個字母,循環16個字符並打印。直到沒有剩餘16個字符。
任何幫助我如何做到這一點?
所以我有一個字符串,例如「AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN」。Python迭代字符串
我想能夠循環超過16個字符開始並打印它。然後向上移動1個字母,循環16個字符並打印。直到沒有剩餘16個字符。
任何幫助我如何做到這一點?
像這樣的事情?
string = "AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN"
for n in range(len(string)-15):
print(string[n:n+16])
你必須每個字符遍歷最多有16個字符後(因此字符串的長度,減去15(因爲索引從0開始):len(string)-15
)的最後一個字符,然後打印字符串在該起始索引切片直到索引+ 16(string[n:n+16]
)。
切片是Python編程的一個重要和IMO強大的方面,如果您對語言(或通常編程)不熟悉,那麼這是一個很棒的閱讀,您絕對應該練習它。 The official docs有關於這個話題的一些很好的信息。
您正在關閉 –
@FabianN。謝謝。編輯。 –
如果我深知,你可能想要做這樣的事情:
a = "AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN"
for i in range(len(a) - 15):
print(a[i:i+16])
我沒有看到那個關閉 –
我會做:
str = "AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN"
for i in range(len(str)):
if len(str[i:i+16]) == 16:
print(str[i:i+16])
else:
break
如何列表理解?
s = 'AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN'
print [s[x:x+16] for x in range(len(s)-15)]
['AABBCCCASSDSFGDF', 'ABBCCCASSDSFGDFG', 'BBCCCASSDSFGDFGH', 'BCCCASSDSFGDFGHD', 'CCCASSDSFGDFGHDG', 'CCASSDSFGDFGHDGH', 'CASSDSFGDFGHDGHR', 'ASSDSFGDFGHDGHRT', 'SSDSFGDFGHDGHRTF', 'SDSFGDFGHDGHRTFB', 'DSFGDFGHDGHRTFBF', 'SFGDFGHDGHRTFBFI', 'FGDFGHDGHRTFBFID', 'GDFGHDGHRTFBFIDH', 'DFGHDGHRTFBFIDHF', 'FGHDGHRTFBFIDHFD', 'GHDGHRTFBFIDHFDU', 'HDGHRTFBFIDHFDUF', 'DGHRTFBFIDHFDUFG', 'GHRTFBFIDHFDUFGH', 'HRTFBFIDHFDUFGHS', 'RTFBFIDHFDUFGHSI', 'TFBFIDHFDUFGHSIF', 'FBFIDHFDUFGHSIFU', 'BFIDHFDUFGHSIFUG', 'FIDHFDUFGHSIFUGE', 'IDHFDUFGHSIFUGEG', 'DHFDUFGHSIFUGEGF', 'HFDUFGHSIFUGEGFG', 'FDUFGHSIFUGEGFGN', 'DUFGHSIFUGEGFGNO', 'UFGHSIFUGEGFGNOD', 'FGHSIFUGEGFGNODN']
理解是偉大的,但OP並不意味着他需要列表中的結果。如果是這種情況,那麼這是優雅的。 –
@LennartKloppenburg好吧,他沒有暗示任何含糊不清的問題,所以我現在要堅持列表。 – alex
我想這是有道理的;) –
你試過什麼嗎? –
顯示預期的結果 – RomanPerekhrest