【问题标题】:Joining Lists of Lists in Python in a specific manner以特定方式在 Python 中加入列表列表
【发布时间】:2017-05-16 19:40:43
【问题描述】:

给定两个非常大的列表(大约 5 万条记录)list1 = [['a','b','c'],['d','e','f']]list2 = [['a','r','t'],['d','e','n']]。如何获取list3 = [['a','b','c','r','t'],['d','e','f','e','n']]

在这里,我通过将第二个列表的子列表的第一个字符合并并在最终列表中只取其中一个字符来加入

我是 python 新手 我试过了

i=0
final=[]
    while (i<len(list1)) :
        for row in list2 :
            if(list1[i][0]==list2[0]) :
                final= row + list[i][1:]

    i+=1

但这不起作用

【问题讨论】:

  • 您好,欢迎您!看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只会在发布者已经尝试自己解决问题时提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • 发布您的尝试,我们会告诉您如何解决它或更有效地进行操作。
  • 请解释一下为什么结果中的两个列表每个只有五个元素。
  • 对不起,我是新来的。编辑了问题

标签: python python-2.7 join nested-lists


【解决方案1】:
list1 = [['a','b','c'],['d','e','f']]
list2 = [['a','r','t'],['d','e','n']]

print([x+y[1:] for x,y in zip(list1,list2)])

使用list comprehensionslist slicingzip() 函数可以很快完成。

基于 cmets 编辑,使用 if 大小写只允许某些事情通过:

list1 = [['a','b','c'],['d','e','f']]
list2 = [['a','r','t'],['d','e','n']]

print([x+y[1:] for x,y in zip(list1,list2) if x[0] == y[0]])

【讨论】:

  • 谢谢,我是新来的。很抱歉之前没有发布我的尝试
  • 如果我想使用子列表的第一个元素相同的条件加入怎么办
  • 如果它们不一样会怎样?
  • 它不打印它们,循环继续
猜你喜欢
  • 2017-10-15
  • 1970-01-01
  • 2021-08-17
  • 2019-05-10
  • 2016-11-21
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多