如何将字符串拆分为多个变量组

2024-04-19 00:30:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子

'abcdefgh12345678abcdefgh'

我想把它分成3个8个变量的字符串:

'abcdefgh','12345678' and 'abcdefgh'

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

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

我该怎么做?你知道吗


Tags: and字符串列表绳子abcdefghabcdefgh12345678abcdefgh
2条回答

在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)]

这将为您提供whole8个字符长的部分,不管它有多长,只需忽略结尾处不适合完整8个字符块的任何额外部分。在一个24个字符的字符串的例子中,它会循环使用i等于0、1和2,给出与上面例子中完全相同的间隔。你知道吗

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)

相关问题 更多 >