簡體   English   中英

替換Python字典中的列表值

[英]Replace list value in Python dictionary

我有以下字典。 對於值為['FAIL', 'PASS'] ,我只想將其替換為'PASS'

Dict = [('Main Menu-046', ['PASS']), ('Main Menu-047', ['FAIL']), ('Main Menu-044', ['FAIL', 'PASS']), ('Main Menu-045', ['PASS']), ('Main Menu-042', ['FAIL', 'PASS']), ('Main Menu-043', ['FAIL'])

我嘗試了以下方法:

if "FAIL" in [x for v in Dict.values() for x in v]: ## if true
    Dict.values == "PASS"

如果我正確理解了您的問題,則想將['FAIL', 'PASS']替換為['PASS']

processed_list = [(x[0], ["PASS"] if "PASS" in x[1] else x[1]) for x in Dict]

結果是:

[('Main Menu-046', ['PASS']),
 ('Main Menu-047', ['FAIL']),
 ('Main Menu-044', ['PASS']),
 ('Main Menu-045', ['PASS']),
 ('Main Menu-042', ['PASS']),
 ('Main Menu-043', ['FAIL'])]

您不使用字典,而是使用成對的列表(Main, [PASS/FAIL])

如果您想要一本字典,則可以通過d = { key:value, key:value ... }d = dict()來創建它,並通過簡單地d['newkey'] = value添加項

另外,如果您願意,可以應用如下默認值:

from collections import defaultdict

d = defaultdict(lambda : defaultvalue)

當您有字典時,請嘗試如下循環:

for key in d.keys():
  if d[key] == 'FAIL': # or if 'FAIL' in d[key] if d[key] is a list like ['FAIL']
    d[key] = 'PASS' # or == ? why a boolean without condition or return ?

暫無
暫無

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

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