python - 比较列表的列表并将某些元素写入新列表

标签 python list

看起来这个问题已经被问了几十次了,但是没有一个答案对我有帮助,所以我担心我会再次问它(请不要恨我!)。 我有两个列表列表:

amm = [['0005FC66DF', '4403'", ',\n'], [" ['0001C52E02', '4406'", ',\n'],etc] 

data = [['07/11/2012', '09:53:36', 'Thing', '#0F', '0006E7895B', 'T', 'U\n'], ['05/13/2012', '09:54:27', 'Thing', '#0F', '0006E3DADA', 'T', 'U\n'], etc]. 

我想看看 data 中列表中的第 5 个元素是否与 amm 中列表中的第一个元素相同,如果是,我想将 data 中的列表写入新的列表列表 amv。我已经尝试了一切。我开始于

for i in data:
  if data[i][4] in amm:
    amv[i].append(i)

它没有向 amv 写入任何内容,所以我尝试了

amv=[item for item in data if item[4] in[items for items in amm]]

有同样的问题,所以我尝试了

   for i in data:
    for j in amm:
        if i[4] == j[0]:
             amv.append(j)

以及这些主题的一百万个(可能稍微更准确)变体。这应该是一件很简单的事情,但它对我来说不起作用。任何帮助将非常非常感谢。提前致谢!

编辑 抱歉,这不是很清楚。我想做的是编写一个新列表(amv),其中包含 data 中第五个元素出现在 amm 中的所有列表。我展示的所有脚本都没有向新列表 amv 添加任何内容。 amv 一直是空的,我不明白为什么..

最佳答案

s = set(x[0] for x in amm)
amv = [x for x in data if x[4] in s]

关于python - 比较列表的列表并将某些元素写入新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247682/

相关文章:

python - Scrapy 绕过带有表单例份验证的警报消息

Python:functools,方法的包装装饰器:使 ipython 在使用 '?' 时返回正确的定义

r - 将向量与向量列表匹配

R - 改变列表结构

python - 在 Stitcher 类中使用 composePanorama 和 OpenCV-Python 绑定(bind)

python - 如果列表包含大小不等的元组,如何迭代?

string - Scheme - 带过滤器的列表函数

c# - 如何在 C# 中将 Object 转换为 List<string>?

在数据帧列表上运行 rapply

python - 在给定条件下为新的 Pandas 列分配值