如何从字典的值列表中提取指定值并存储到独立列表?
问题解决方法
错误原因分析
你之前的代码返回空列表,是因为list(dicts.values())得到的是包含两个子列表的列表,每个循环变量x是整个子列表,而不是子列表里的单个文件名。"volume_" in x是检查这个字符串是否是列表的元素(显然不是),而非判断元素中包含该字符串,所以条件不成立,返回空列表。
解决代码
方法一:生成独立的列表变量(符合你的预期输出)
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'] } # 遍历字典的每个键和对应的文件列表 for key, file_list in dicts.items(): # 筛选出包含"volume_"的文件路径 filtered = [path for path in file_list if "volume_" in path] # 动态创建对应的变量,比如volume_list_A、volume_list_B globals()[f"volume_list_{key}"] = filtered # 查看结果 print(volume_list_A) # 输出: ['volume_one.csv','volume_two.csv'] print(volume_list_B) # 输出: ['volume_one.csv','volume_two.csv']
方法二:用字典存储结果(更规范,适合键较多的场景)
如果不需要单独的变量,用字典统一管理筛选结果会更易维护:
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'] } # 字典推导式生成筛选结果 volume_results = { f"volume_list_{key}": [path for path in file_list if "volume_" in path] for key, file_list in dicts.items() } # 访问结果 print(volume_results["volume_list_A"]) print(volume_results["volume_list_B"])
内容的提问来源于stack exchange,提问作者VasudeV
相关产品推荐
相关产品推荐

