【问题标题】:How can I pass parts of a list to different variables? [duplicate]如何将列表的一部分传递给不同的变量? [复制]
【发布时间】:2020-01-03 03:49:17
【问题描述】:

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

【问题讨论】:

  • 总是正好是 12 个字,还是可以是 4 的任意倍数?

标签: python python-3.x list sorting


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    当然可以:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多