我正在尝试返回一个列表列表,其中每个子列表都有与字典中的关键字相对应的值。例如:
dictionary = {'CORRECT': ['full','mark'],'INCORRECT':['partial','mark']}对于列表[['INCORRECT'],['INCORRECT','CORRECT']]的列表,它应该返回:
[[['partial','mark']],[['partial','mark'],['full','mark']]]这是我尝试过的:(ps: clean_word是我以前用过的函数,请忽略它)
result = []
for key in dictionary:
word = clean_word(key)
if word:
result.append(dictionary[word])
return result但是,此代码将返回如下结果
[['full','mark'], ['partial', 'mark']]订单是一团糟,而且缺少价值。我猜这是因为它有一个在列表中重复出现的键(不正确),所以python只查看键的第一次出现。如何解决这个问题?谢谢。
发布于 2020-03-23 22:16:52
您可以使用列表理解:
l = [['INCORRECT'],['INCORRECT','CORRECT']]
dictionary = {'CORRECT': ['full','mark'],'INCORRECT':['partial','mark']}
[[dictionary[e] for e in i] for i in l]输出:
[[['partial', 'mark']], [['partial', 'mark'], ['full', 'mark']]]发布于 2020-03-23 22:21:24
my_list = [['INCORRECT'],['INCORRECT','CORRECT']]
dictionary = {'CORRECT': ['full','mark'],'INCORRECT':['partial','mark']}
result = [ [dictionary[x] for x in sublist ] if isinstance(sublist, list) else dictionary[sublist] for sublist in my_list ]https://stackoverflow.com/questions/60815211
复制相似问题