如何将列表中的匹配元素附加到另一个列表?

yaoming99

我有两个清单: file_name = ['AC30+775002+ secondary 2.jpg', 'AC30+775002+primary.jpg', 'AX-5+200998+primary.jpg', 'AX-5+200998+secondary 2.jpg', 'CJ19+244082+ Primary.jpg']

number = ['775002', '200998', '244082']

我正在尝试将number我在列表中找到的匹配字符串附加到列表中file_name,使其变为:

number = [['775002', 'AC30+775002+ secondary 2.jpg', 'AC30+775002+primary.jpg'], ['200998', 'AX-5+200998+primary.jpg', 'AX-5+200998+secondary 2.jpg'], ['244082', 'CJ19+244082+ Primary.jpg']]

这些列表是从单列 .csv 文件中提取的,因此我还希望以 Excel 可读的格式将其导出,以便在数据库中工作。

这是我到目前为止:


with open('file_name.csv', newline='') as csvfile:
    file_name = list(csv.reader(csvfile))

with open('number.csv', newline='') as csvfile:
    number = list(csv.reader(csvfile))

for i in number:
    matching = [s for s in file_name if number[i] in s]
    number[i].append(matching)```

问题是您在迭代列表时正在更改它。从来number[i]都不是一个好主意,而且您正在访问,就好像您正在迭代一个范围一样。虽然这也可以使用理解轻松完成

file_name = ['AC30+775002+ secondary 2.jpg', 'AC30+775002+primary.jpg', 'AX-5+200998+primary.jpg', 'AX-5+200998+secondary 2.jpg', 'CJ19+244082+ Primary.jpg']
number = ['775002', '200998', '244082']

all_matches = [[i] + [s for s in file_name if i in s] for i in number]

[['775002', 'AC30+775002+ secondary 2.jpg', 'AC30+775002+primary.jpg'], ['200998', 'AX-5+200998+primary.jpg', 'AX-5+200998+secondary 2.jpg'], ['244082', 'CJ19+244082+ Primary.jpg']]

或者使用更合适的数据类型 ( dict)

all_matches = {i: [s for s in file_name if i in s] for i in number}

{'775002': ['AC30+775002+ secondary 2.jpg', 'AC30+775002+primary.jpg'], '200998': ['AX-5+200998+primary.jpg', 'AX-5+200998+secondary 2.jpg'], '244082': ['CJ19+244082+ Primary.jpg']}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个列表的所有元素附加到另一个列表?

如何将一个列表中的元素添加到另一个列表中?

如何将一个列表中的元素添加到另一个列表?

如何将2d列表中的值附加到另一个列表并打印

如何将列表(从for循环中出来)附加到scala中的另一个现有列表

如何将2个简短列表中的元素追加到另一个大元组列表中?

将列表(元素)附加到另一个列表中,按字母给出一个元素

如何将元素从另一个列表添加到列表?

如何将列表中的列表添加到另一个列表

当现有列表的每个元素在for循环内被更改时,如何将列表附加到python for循环中的另一个列表?

将列表的所有元素分别附加到python中另一个列表的所有元素

我如何将列表与 python 中的另一个列表匹配

如何将列表添加到C#中的另一个列表?

如何将列表中的元素直接放置到另一个列表中?

如何根据另一个嵌套列表将缺失值附加到嵌套中?

将列表的元素附加到迭代器的左侧或右侧到另一个列表

如何将 for 循环的输出显示为列表,然后将其附加到另一个列表?

如果子列表中存在术语,如何仅将子列表附加到另一个列表?

如何将列表中的第 i 个项目附加到另一个列表中的另一个列表第 i 个项目时间

如何将一个列表添加到另一个列表

将一个列表的每个命名元素附加到另一个列表的相同命名元素

如何将一个列表中的索引匹配到另一个列表并存储值?

如何将一个列表中的列匹配到另一个列表?

如何使用for循环将列表附加到另一个列表

如何将列表中的值与另一个匹配

如何将现有的 html 元素附加到另一个元素?

我如何将列表中的元素分配给 Python 中列表中的另一个元素

如何将多维数组中的元素附加到另一个多维数组的每个元素

如何将另一个元素作为列表插入到 TreeMap 值中