Python迭代字符串

时间:2017-04-25 08:32:49

标签: python

所以我有一个字符串,例如#AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN"。

我希望能够循环播放超过16个字符并打印出来。然后向上移动1个字母,循环超过16个字符并打印出来。直到没有剩下16个字符。

关于我如何做到这一点的任何帮助?

4 个答案:

答案 0 :(得分:2)

这样的东西?

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有关于该主题的一些很好的信息。

答案 1 :(得分:0)

如果我理解得很好,你可能会想做类似的事情:

a = "AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN"

for i in range(len(a) - 15):
    print(a[i:i+16])

答案 2 :(得分:0)

我愿意:

str = "AABBCCCASSDSFGDFGHDGHRTFBFIDHFDUFGHSIFUGEGFGNODN"

for i in range(len(str)):
    if len(str[i:i+16]) == 16:
        print(str[i:i+16])
    else: 
        break

答案 3 :(得分:0)

列表理解怎么样?

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']