如果列表中的前一个元素存在于第二个列表中,我需要将'default'
替换为'custom'
。我正在寻找更好的解决方案和更多的Pythonic方法来实现这一目标。
base_list = [[1, 'post', 'default'],
[2, 'reply', 'default'],
[3, 'register', 'default']]
custom_list = ['post', 'register']
for element in custom_list:
for item in base_list:
if element == item[1]:
item[2] = 'custom'
print base_list
>>> [[1, 'post', 'custom'], [2, 'reply', 'default'], [3, 'register', 'custom']]
答案 0 :(得分:1)
我使用in
运算符:
for item in base_list:
if item[1] in custom_list:
item[2] = 'custom'
如果custom_list
很大,我会将其设为set
。
答案 1 :(得分:0)
您可以通过列表理解实现以下目标:
[[item[0], item[1], 'custom'] if item[1] in custom_list else item for item in base_list]
# Output: [[1, 'post', 'custom'], [2, 'reply', 'default'], [3, 'register', 'custom']]