如何将大字符串分隔为多个字符串
a1=1234567891122334455667788
我想将a1
字符串分解为多个字符串,如下所示
a2=123
a3=456
a4=789
a5=112
与其余的字符串值
相同我尝试使用for
循环,但无法获得预期结果
我在if
循环中使用了for
语句,一旦将3个值添加到字符串a2
中就打破了循环,但我发现每次添加增量都难以存储3个值变量a+
(a2 a3 a4
)
答案 0 :(得分:3)
您可以使用more-itertools' sliced()
将字符串切成相等的块:
>>> import more_itertools
>>> a1 = '1234567891122334455667788'
>>> list(more_itertools.sliced(a1, 3))
['123', '456', '789', '112', '233', '445', '566', '778', '8']
答案 1 :(得分:2)
问题不在于切片,问题是如何将切片值存储在变量中。我建议您使用dict
,以便将其用作键值对。
a1 = '1234567891122334455667788'
d = {} ; c=2
for i in range(0,len(a1),3):
d['a'+str(c)] = a1[i:i+3]
c+=1
print(d)
{'a8': '566', 'a10': '8', 'a4': '789', 'a9': '778', 'a6': '233', 'a7': '445', 'a3': '456', 'a5': '112', 'a2': '123'}
答案 2 :(得分:1)
一种简单的方法可能是将字符串切成3个字符的块
s = "1234567891122334455667788"
while i < len(s):
print(s[i:i+3])
i += 3
答案 3 :(得分:1)
我只想使用这样的列表理解:
a = [a1[i:i+3] for i in range(0, len(a1), 3)]
现在如何获取变量a1
,a2
,..,an
的实际索引。这是另一个我没有答案的问题。
查看您接受的答案,您也可以使用dict comprehension:
d = {'a'+str(i/3+2): a1[i:i+3] for i in range(0, len(a1), 3)}
但这很难阅读。
答案 4 :(得分:0)
你可以试试这个
>>> a1='1234567891122334455667788'
>>> itr=1
>>> a2=""
>>> lst=[]
>>> for i in a1:
#print a2
a2=a2+str(i)
if (itr%3==0):
lst.append(a2)
itr=0
a2=''
itr+=1
输出
>>> lst
['123', '456', '789', '112', '233', '445', '566', '778']