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

Python 如何将列表的一部分传递给不同的变量?,python,python-3.x,list,sorting,Python,Python 3.x,List,Sorting,是否可以将列表的一部分传递给多个变量以创建新列表?我有一个包含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) 我得到一个错误: Value

是否可以将列表的一部分传递给多个变量以创建新列表?我有一个包含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']
当然,你可以:

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']

只需使用适当的步骤拆分列表:


它总是正好是12个单词,还是可以是4的任意倍数?
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']