我是python新手,来自Matlab,现在仍在调整使用列表而不是数组。我有两个列表,如果每行中的项目与第二行中的任何元素匹配,我将尝试用第一行中的项目创建第三个列表。基本上,我有
list1 = [['name1',height1,length1],['name2',height2,length2]...['name9',height9,length9]
list2 = ['name1','name9']
list3 = []
想要像这样的东西
for row in list1
if first element (namex) in row is in list2
append row to list 3
我想要一个list3,它将包含list1的行,这些行的第一个项与list2中的项匹配
list3 = [['name1',height1,lenght1],['name9',height9,length9]]
我尝试了两种不同的方法,但都得到了一个空白列表3:
list3 = [item for item in list1 if item[0] in list2]
以及
for rows in list1:
if list1[0] in list2:
list3.append(rows)
知道列表不能像数组那样被索引,我怎么能在这里得到类似的功能呢
你提出的第一个方法对我很有效
要使第二种方法起作用,需要对其进行如下修订:
if
检查应该使用rows[0]
而不是list1[0]
这可以浓缩成一个列表
相关问题 更多 >
编程相关推荐