【问题标题】:Combine output of multiple lists into one list (Python)将多个列表的输出合并为一个列表(Python)
【发布时间】:2020-07-10 13:49:57
【问题描述】:

我正在尝试创建一个列表的输出。我想我可以将多个列表连接在一起,但由于它存储在一个地方,我很吃力。

    my_list = (len(largest) // len(STR[words]))
        print (my_list)

输出:

    ['DAVID', 4]
    ['MATTHEW', 1]
    ['PETER', 5]

我需要它看起来像这样:

    ['DAVID', 4, 'MATTHEW', 1, 'PETER',5]

【问题讨论】:

  • 请创建一个minimal reproducible example(len(largest) // len(STR[words])) 应该创建一个 int,而不是一个列表。
  • 是的,我后来改成列表了。 STRnumber = (len(largest) // len(STR[words]))MAXnumberTuple = (STR[words], STRnumber)#convert tuple to listmy_list = list(MAXnumberTuple)
  • 对不起,我是新来的,正在努力格式化我的答案。

标签: python list


【解决方案1】:

您可以在 Python 中添加列表,这不是很有效,只是这样做:

list1 + list2

会为你工作。

所以是这样的:

new_list = []

for l in your_lists:
    new_list += l

print(new_list)

【讨论】:

  • 在执行此操作之前,我是否需要访问存储在上述 my_list 中的每个列表?
【解决方案2】:

您可以在 python 中使用 zip() 函数

l1 = ['DAVID', 4]
l2 = ['MATTHEW', 1]
l3 = ['PETER', 5]

x = zip(l1,l2, l3)
print(list(x))

它会给你这个输出:

[('DAVID', 'MATTHEW', 'PETER'), (4, 1, 5)]

编辑: 如果您将列表作为列表的列表,那么您可以这样做,并且它可以扩展,它会产生相同的输出。

lists = [
        ['DAVID', 4],
        ['MATTHEW', 1],
        ['PETER', 5],
        ]

x = zip(*lists)
print(list(x))

再次编辑 如果你想要一本字典,那么你可以这样做:

liste = [
        ['DAVID', 4],
        ['MATTHEW', 1],
        ['PETER', 5],
        ]

dicta ={}
for i in range(len(liste)):
    dicta[liste[i][0]]=liste[i][1] 

print(dicta)

它会产生这个输出:

{
  "DAVID": 4,
  "MATTHEW": 1,
  "PETER": 5
}

【讨论】:

  • 不幸的是,根据输入,列表的数量可能会发生变化,所以我认为这对我的情况没有帮助。我可能需要查看早期的代码并安排更好的输出。
  • 您是否将列表作为列表列表?
  • 我正在遍历一个文本,输出每次迭代都会创建一个列表。
  • 好的,所以您可以将它们附加到一个大列表中,执行我的答案末尾的操作。但是你有没有考虑过买一本字典? :)
  • 我相信一份清单足以满足我的需要。我会查找 append 看看我能找到什么。
猜你喜欢
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多