我有一個字典(dict_),其中包含整數串列作為值。我想對這些串列進行操作并將結果保存為新字典。
下面我對這些串列進行操作,如果元素大于 5,則添加 2。我使用嵌套的 for 回圈來實作這一點。我將如何使用字典理解來實作相同的目標?
dict_={'a':[5, 8, 7],
'b':[4, 7, 2],
'c':[2, 2, 4]}
print(dict_)
#Output: {'a': [5, 8, 7], 'b': [4, 7, 2], 'c': [2, 2, 4]}
dict_new = {}
for k, v in dict_.items():
list_temp=[]
for e in v:
if e > 5:
ne=e 2
list_temp.append(ne)
else:
list_temp.append(e)
dict_new[k] = list_temp
print(dict_new)
# Output: {'a': [5, 8, 7], 'b': [4, 7, 2], 'c': [2, 2, 4]}
uj5u.com熱心網友回復:
這可能是你的理解:
{k: [i if i <= 5 else i 2 for item in v] for k, v in dict_.items()}
請注意,您還需要對這些值進行串列理解。
注意到這False基本上是0并且你可以簡化(但也許讓它更模糊?)串列理解:True1
{k: [i 2 * (i > 5) for i in v] for k, v in dict_.items()}
uj5u.com熱心網友回復:
你可以這樣做,但是當你同時使用字典和串列時,你也需要使用串列推導。
my_dict ={'a':[5, 8, 7],
'b':[4, 7, 2],
'c':[2, 2, 4]}
d = {key: [x if x <= 5 else x 2 for x in value] for key, value in my_dict.items()}
這應該可以解決上述問題并回傳:
{'a': [5, 10, 9], 'b': [4, 9, 2], 'c': [2, 2, 4]}
uj5u.com熱心網友回復:
for k, v in dict_.items():
dict_new[k] = [e 2 if e > 5 else e for e in v ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473193.html
