python:遍历列表并用相应的字典值替换元素
Posted
技术标签:
【中文标题】python:遍历列表并用相应的字典值替换元素【英文标题】:python: iterate through list and replace elements with corresponding dictionary values 【发布时间】:2011-05-06 06:02:15 【问题描述】:我正在尝试用在字典中查找的值替换列表元素值,我该怎么做?
列表 = [1, 3, 2, 10] d = 'id': 1, 'val': 30,'id': 2, 'val': 53, 'id': 3, 'val': 1, 'id': 4 , 'val': 9, 'id': 5, 'val': 2, 'id': 6, 'val': 6, 'id': 7, 'val': 11, 'id': 8, 'val': 89, 'id': 9, 'val': 2, 'id': 10, 'val': 4 对于列表中的 i: 对于 d.iteritems() 中的键 v: ??? ???所以最后我期待:
列表 = [30, 1, 53, 4]谢谢你
【问题讨论】:
@systempuntout:字典元组。 Dict 很奇怪。如果它是 1 : 30, 2 : 53 ... 事情会更容易。 【参考方案1】:D2 = dict((x['id'], x['val']) for x in D)
L2 = [D2[x] for x in L]
【讨论】:
如果问题反过来怎么办?【参考方案2】: td = (
'val': 30, 'id': 1,
'val': 53, 'id': 2,
'val': 1, 'id': 3,
'val': 9, 'id': 4,
'val': 2, 'id': 5,
'val': 6, 'id': 6,
'val': 11, 'id': 7,
'val': 89, 'id': 8,
'val': 2, 'id': 9,
'val': 4, 'id': 10
)
source_list = [1, 3, 2, 10]
final_list = []
for item in source_list:
for d in td:
if d['id'] == item:
final_list.append(d['val'])
print('Source : ', source_list)
print('Final : ', final_list)
结果
Source : [1, 3, 2, 10]
Final : [30, 1, 53, 4]
【讨论】:
以上是关于python:遍历列表并用相应的字典值替换元素的主要内容,如果未能解决你的问题,请参考以下文章