这是一个人为的示例,用于演示在 for 循环和列表理解中多次引用同一个字典项。首先,for循环:
dict_index_mylists = {0:['a', 'b', 'c'], 1:['b', 'c', 'a'], 2:['c', 'a', 'b']}
# for-loop
myseq = []
for i in [0, 1, 2]:
interim = dict_index_mylists[i]
if interim[0] == 'b' or interim[1] == 'c' or interim[2] == 'a':
myseq.append(interim)
在 for 循环中,临时列表从字典对象中引用,然后在 if 条件中被多次引用,如果字典非常大和/或在存储中,这可能特别有意义。再说一次,“临时”引用可能是不必要的,因为 Python 字典已针对性能进行了优化。
这是 for 循环的列表理解:
# list-comprehension
myseq = [dict_index_mylists[i] for i in [0, 1, 2] if dict_index_mylists[i][0] == 'b' or dict_index_mylists[i][1] == 'c' or dict_index_mylists[i][2] == 'a']
问题是:
一种。列表理解是否多次引用字典项目,还是引用并保留一个本地“临时”列表以进行处理?
湾。在同一个字典项上包含多个条件并且字典非常大的最佳列表理解表达式是什么?