如何将列表的一部分传递给不同的变量?

2024-04-30 05:13:59 发布

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

是否可以将列表的一部分传递给多个变量以创建新的列表?我有一个包含12个单词的列表,我想把前4个单词放到一个新的列表中,以此类推,直到我有了所有单词的新列表,每个新列表包含4个单词。你知道吗

sample1 = ['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o']
print(sample1)
row1, row2, row3 = sample1
print(row1)
print(row2)
print(row3)

我得到一个错误:

ValueError: too many values to unpack (expected 3)

我期望的最终结果是:

row1 = ['d', 'e', 'f', 'g']
row2 = ['h', 'i', 'j', 'k']
row3 = ['l', 'm', 'n', 'o']

Tags: to列表错误单词manytooexpectedvalues
2条回答

只要用一个适当的步进来拆分你的列表:

sample1 = ['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o']
row1, row2, row3 = [sample1[i:i+4] for i in range(0, len(sample1), 4)]
print(row1, row2, row3)
# ['d', 'e', 'f', 'g'] ['h', 'i', 'j', 'k'] ['l', 'm', 'n', 'o']

当然你可以:

sample1 = ['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o']

row1, row2, row3 = sample1[0:4], sample1[4:8], sample1[8:12]

print(row1, row2, row3)

结果:

['d', 'e', 'f', 'g'] ['h', 'i', 'j', 'k'] ['l', 'm', 'n', 'o']

相关问题 更多 >