如何在多个变量组中拆分字符串

时间:2015-08-09 10:25:40

标签: python

我有一个字符串

'abcdefgh12345678abcdefgh'

我希望将它分成3个字符串的8个变量:

'abcdefgh','12345678' and 'abcdefgh'

但是我得到了3个字符串的列表:

['abcdefgh', '12345678', 'abcdefgh']

我该怎么做?

2 个答案:

答案 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,为您提供与上述示例完全相同的间隔。