簡體   English   中英

在 python 字典中的列表中查找和替換值

[英]finding and replacing values in list in python dictionary

我有這個練習需要解決 class。 我要做的是將所有低於 50 的值更改為 50 並打印更新的字典。

這是字典

precios = {

    'ACCIONA': [78.60, 84.95, 77.20],

    'ACERINOX': [5.88, 51.25, 58.42],

    'INDITEX': [49.99, 57.89, 68.5],

    'ENEGAS': [0.5, 0.78, 48.75],

    'FERROVIAL': [78.58, 24.25, 65.45]

}

這是我到目前為止所做的:

for i in precios.values():
    for item in i:
        if item < 50:
            item = 50

但是,當我嘗試打印帶有更改的字典時,它只會打印原始字典。

嘗試這個。

for k,v in precios.items():
    #k = key, v = value
    #list comprehension to make new list of dictionaries values
    new = [50 if nums < 50 else nums for nums in v ]
    #update
    precios[k] = new

output

{'ACCIONA': [78.6, 84.95, 77.2], 'ACERINOX': [50, 51.25, 58.42], 'INDITEX': [50, 57.89, 68.5], 'ENEGAS': [50, 50, 50], 'FERROVIAL': [78.58, 50, 65.45]}

使用 for 循環而不是 for-each 循環作為內部循環:

for l in precios.values():
    for i in range(len(l)):
        if l[i] < 50:
            l[i] = 50

print(precios)
{'ACCIONA': [78.6, 84.95, 77.2], 'ACERINOX': [50, 51.25, 58.42], 'INDITEX': [50, 57.89, 68.5], 'ENEGAS': [50, 50, 50], 'FERROVIAL': [78.58, 50, 65.45]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM