我有一个列表:
mylist = [['A',4,2,5], ['C',3,9,5], ['D',2,5,6]]
还有一本字典:
mydict = {'A' : 2, 'B' : 6, 'C' : 3}
如果嵌套列表的第一个值与 mydict 的键匹配,我想用 mydict 的值划分嵌套列表。
mylist2 应该是这样的:
mylist2 = [['A',2,1,2.5], ['C',1,3,1.66666666667], ['D',2,5,6]]
我是 python 的新手,尝试了很多,例如这个但是没有用:
mylist2 = []
for item in mylist:
if item[0] == list(mydict.keys()):
mylist2 = mylist[0][1:] / list(mydict.keys())
print(mylist2)
最佳答案
您可以使用嵌套列表推导,使用key, *rest
解压mylist
的元素并使用dict.get
获取除数或默认为 1:
>>> [[key] + [x/mydict.get(key, 1) for x in rest] for key, *rest in mylist]
[['A', 2.0, 1.0, 2.5],
['C', 1.0, 3.0, 1.6666666666666667],
['D', 2.0, 5.0, 6.0]]
关于Python:将嵌套列表的值与字典值相除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53706891/