python - 从字典列表中创建具有特定值的列表(作为字符串的键和值是整数列表)
问题描述
我有一个带有字符串的字典列表和一个字符串列表作为它们各自键的值:
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']]
解决方案
考虑每个dictionary
项目的场景len(id) = len(num)
list_of_dictionaries = [
{'id': 'ABBA', 'num': ['10', '3', '5', '1']},
{'id': 'ABAC', 'num': ['4', '5', '6', '20']}]
limit = 5
outerlist = []
for d in list_of_dictionaries:
innerlist = []
for x in range(len(d['num'])):
if int(d['num'][x]) > limit:
innerlist.append(d['id'][x])
outerlist.append(innerlist)
print(outerlist) # [['A'], ['A', 'C']]
推荐阅读
- java - 无法在 IntelliJ 的调试模式下输入方法?
- loopbackjs - 环回休息连接头授权
- javascript - Javascript Pacman 风格的游戏 - 无法在水平路径中存储分数
- python-3.x - 当实例由函数确定时,如何在 Python 中设置实例属性?
- css - CSS - 当从左到右移动而不是从右到左移动时,根据悬停元素闪烁的自定义光标
- java - Firebase:如何在删除键后按顺序获取键
- node.js - Electron、TypeScript、SQLite:未找到 package.json
- python - 即使数据不存在,也可以收集数据、计数和返回字典列表
- c# - ASP.NET CORE 2 - 实体类型'IdentityUserRole
' 是用一个键属性定义的,但是有 2 个值被传递给了 'DbSet.Find' 方法 - c# - 如何使用 Spire.PDF 或任何其他库以适当的格式将 pdf 文件读取为文本文件?