【发布时间】:2025-12-30 17:05:11
【问题描述】:
我有一个字典列表,其中包含一个字符串和一个字符串列表作为它们各自键的值:
list_of_dictionaries = [
{'id': 'ABBA', 'num': ['10', '3', '5', '1']},
{'id': 'ABAC', 'num': ['4', '5', '6', '20']}]
'id' 字符串中的每个字母都与匹配索引处的 'num' 中的数字相对应。因此,对于值“ABBA”,它将按顺序匹配每个位置的“num”中的值:A = 10、B = 3、B = 5、A = 1。我想返回一个带有“num”的 id 列表> 5 在每个字典中,同时保持其当前顺序。
这是我的尝试:
bad_values = ['','0','1','2','3','4','5']
final_ids =[]
for i in list_of_dictionaries:
list_of_high_num =[]
for id,num in enumerate(i.items()):
if i["num"] is not bad_values:
list_of_high_num.append(i["id"])
final_ids.append(list_of_high_num)
但是,我只是将我的原始 id 字符串返回到列表中。我哪里错了?
想要的输出是这样的:
final_list = [['A'], ['A', 'C']]
【问题讨论】:
-
您的预期输出是什么?您需要提供minimal reproducible example。顺便说一句,欢迎来到 SO!如果您需要更多建议,请查看tour 和How to Ask。
-
您能否为您的程序提供一个示例输出并更清楚地解释该算法?对我来说没有意义......
-
你认为
if i["num"] is not bad_values:在做什么?这将始终返回False。 -
用我想要的输出编辑。感谢您提供这些介绍性资源,显然我是 Python 新手。
-
With if i["num"] is not bad_values: 我说我想要所有高于 5 的值。我尝试使用 i["num"] > 5: 但这会导致问题,因为我收到 TypeError。根据我的搜索,我认为 i.items() 正在返回一个导致此问题的元组?
标签: python string list dictionary