python - 创建数组数组并使用字典
问题描述
我有两个清单:
x = ['1','5','X','9']
y = ['X','9','9P']
我这样组合:
z = [x,y]
print(z)
因此,“z”是两个列表的列表,它看起来像这样:
[['1', '5', 'X', '9'], ['X', '9', '9P']]
我有这本字典:
delqType = {
'1' : 0,
'2' : 3,
'3' : 4,
'4' : 5,
'5' : 6,
'7' : 19,
'8' : 21,
'8A' : 20,
'8P' : 16,
'9' : 22,
'9B' : 18,
'9P' : 15,
'UR' : 23,
'X' : -99999
}
我想将字典 delqType 应用于列表“z”以获得这个新列表(称为“t”),如下所示:
[[0, 6, -99999, 22], [-99999, 22, 15]]
我试过这段代码:
t = []
for i in range(len(z)):
for j in range(len(z[i])):
t.append(delqType[z[i][j]])
next
但是我得到一个列表(而不是我想要的两个列表的列表):
[0, 6, -99999, 22, -99999, 22, 15]
使用字典转换后,如何获取包含元素的两个列表的列表?
解决方案
您应该在 中创建嵌套列表t
,每个嵌套列表对应一个z
. 此外,迭代项目而不是索引会更简单:
t = []
for sub in z:
t.append([])
for item in sub:
t[-1].append(delqType[item])
另一个不错的方法是使用itemgetter
运算符将键列表映射到值列表:
from operator import itemgetter
t = [itemgetter(*sub)(delqType) for sub in z]
推荐阅读
- grid - 如何更改 GridControl 的背景颜色(DevEkspress)
- python - 如何从 python 中的一系列日期获取历史上的外汇汇率?
- roblox - Roblox:玩家在与 NPC 碰撞时飞入太空
- javascript - 如果函数只有一个参数,向函数添加可选参数的正确方法是什么?
- reactjs - 如何在 React Native 的不同组件中使用钩子并让它们显示相同的值?
- azure - Azure Functions:部署到阶段槽也部署到生产槽
- javascript - 用于从 Vue 组件中的 Firebase 检索数据的生命周期挂钩
- angular - 选择不同的选项卡不会更新内容 | 角
- javascript - 查找分解的 unicode 字符以替换为预先组合的等价物
- tensorflow - TFLearn 不能两次实例化同一个模型