pandas 如何从字典中的值列表中获取特定值并存储在唯一列表中?

xu3bshqb  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(110)

我有一本字典,看起来像这样:

dicts = 
{"A" : ['shape_one.csv','shape_two.csv','volume_one.csv','volume_two.csv'],
"B" : ['shape_one.csv','shape_two.csv','volume_one.csv','volume_two.csv']}

值列表中的所有值都是我使用os.walk()提取的.csv文件的路径。现在我只想提取其中包含字符串“volume_”的值,并将这些值存储在列表中。我想为字典中的每个键执行此操作。
我使用Python 3.8。我会感谢任何帮助,因为我是一个非程序员,只是试图以编程方式完成一项任务。提前谢谢你。
输出应该为每个键返回单独的列表,即使值共享相同的名称。

volume_list_A = ['volume_one.csv','volume_two.csv']

volume_list_B = ['volume_one.csv','volume_two.csv']

我试过做:volume_list = [x for x in list(dicts.values()) if "volume_" in x]
但这只是返回一个空列表。

cnh2zyt3

cnh2zyt31#

在字典解析中使用列表解析:

dicts = {"A" : ['shape_one','shape_two','volume_one','volume_two'],
         "B" : ['shape_one','shape_two','volume_one','volume_two']}

out = {f'volume_list_{k}': [x for x in l if x.startswith('volume_')]
       for k,l in dicts.items()}
  • 注意:如果你想让volume_出现在字符串的任何地方(不仅仅是在开头),就用if 'volume_' in x代替if x.startswith('volume_')

输出:

{'volume_list_A': ['volume_one', 'volume_two'],
 'volume_list_B': ['volume_one', 'volume_two']}

相关问题