Python按标识符列出提取元素
我在Python中有两个列表,并希望通过它们的第一列来导出它们的值。第一个列表有两列,第二个列表有一列:Python按标识符列出提取元素,python,list,iterator,append,Python,List,Iterator,Append,我在Python中有两个列表,并希望通过它们的第一列来导出它们的值。第一个列表有两列,第二个列表有一列: type: id: xc1x 45 xf4g 65 gthz 32 gtr7 22 type: (new ID) xc1x xc1x gtr7 xf4g xc1x gthz gtr7 第二个列表应按类型追加第一个列表中的ID。因此,Python应该遍历第二个列表(仅“type”),并在匹配时从第一个列表(type和id)中获取id。做这件事的
type: id:
xc1x 45
xf4g 65
gthz 32
gtr7 22
type: (new ID)
xc1x
xc1x
gtr7
xf4g
xc1x
gthz
gtr7
第二个列表应按类型追加第一个列表中的ID。因此,Python应该遍历第二个列表(仅“type”),并在匹配时从第一个列表(type和id)中获取id。做这件事的好方法是什么?列表有50-1000行。如何存储此列表?好像是一本字典。如果是这样,您只需要迭代第一个,并将其值存储在第二个中。这似乎是您在寻找如何加入的方法。根据您的评论,通过执行
list(zip(ab,cb))
将第一个列表创建为元组列表。我想你最好还是把它写成一个dict:
id_dict = {type: id for type, id in zip(ab, cb)} # this is the "first list" equivalent
现在,要获取第二个列表中任何内容的ID,您只需执行以下操作:
for type in second_list:
id = id_dict[type] # now do whatever you want with this
或者你可以用另一种理解来建立另一个目录或列表。有了更多关于最终目标的上下文,就可以更容易地建议从这里开始的方向。列表如何有“列”?第一个列表是元组列表吗?我使用“list(zip(ab,cb))”函数将两个列表放在一起,并创建第一个确实构成元组列表的列表。你这样做而不是制作字典有什么原因吗?我对许多其他包含两个以上值的列表使用的zip()函数。主要是把三到七个值放在一起。在这种情况下,字典是个好主意。但据我所知,dict只适用于两个值,而不适用于更多值。