![](/img/trans.png)
[英]Python - Best way to replace an element in a list with a key value from a dictionary
[英]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.