我有一个字符串
'abcdefgh12345678abcdefgh'
我希望将它分成3个字符串的8个变量:
'abcdefgh','12345678' and 'abcdefgh'
但是我得到了3个字符串的列表:
['abcdefgh', '12345678', 'abcdefgh']
我该怎么做?
答案 0 :(得分:3)
s = 'abcdefgh12345678abcdefgh'
import re
a, b, c = re.findall("\w{8}", s)
print(a, b, c)
a, b, c = (s[i:i + 8] for i in range(0, len(s), 8))
print(a, b, c)
答案 1 :(得分:1)
在Python中,字符串有点像数组。您可以使用括号([]
)将单个字母作为数组中的元素进行访问。这意味着你的问题可以这样解决:
whole = 'abcdefgh12345678abcdefgh'
part1 = whole[0:8] #abcdefgh
part2 = whole[8:16] #12345678
part3 = whole[16:24] #abcdefgh
请注意,如果字符串短于24个字符,这将为您提供索引越界错误。
或者,如果你想直接在一个数组中,你可以这样做:
parts = [whole[0:8], whole[8:16], whole[16:24]]
但这有点重复。让我们找到一个更好的方法来做到这一点。
parts = [whole[i*8:(i+1)*8] for i in range(len(whole)//8)]
无论多长时间,这都会给你whole
8个字符长的部分,只是忽略不适合完整8个字符块的任何额外部分。在24个字符串的示例中,它将循环i
等于0,1和2,为您提供与上述示例完全相同的间隔。