我是python的新手,所以为天真的问题道歉.我有一份清单
l1 = [2, 4, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)
和另一个元组列表
l2 = [(4,6), (6,8), (8,10)]
Run Code Online (Sandbox Code Playgroud)
我想输出一个l3大小列表,l1用于比较l1第一个坐标的值,l2如果找到第一个坐标则存储第二个坐标l1,否则存储0.
输出:
l3 = [0, 6, 8, 0, 10]
Run Code Online (Sandbox Code Playgroud)
我厌倦了做一个for循环,如:
l3 = []
for i in range(len(l1)):
if l1[i] == l2[i][0]:
l3.append(l2[i][1])
else:
l3.append(0)
Run Code Online (Sandbox Code Playgroud)
但这不起作用.它给出了错误
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
这显然l2比短于l1.
Aja*_*234 11
您可以从l2以下位置创建字典:
l1 = [2,4,6,7,8]
l2 =[(4,6),(6,8),(8,10)]
new_l2 = dict(l2)
l3 = [new_l2.get(i, 0) for i in l1]
Run Code Online (Sandbox Code Playgroud)
输出:
l3 = [0,6,8,0,10]
Run Code Online (Sandbox Code Playgroud)