Python 从对应于另一个列表的列表中获取值
我有一份清单,其中包括:Python 从对应于另一个列表的列表中获取值,python,list,Python,List,我有一份清单,其中包括: NewL = [(1.1,[01,02]),(1.2,[03,04]),(1.3,[05,06])] 我使用enumerate获得了上面的列表,其中包含[01,02]、[03,04]和[05,06]的方括号通常是从另一个列表中获得的。我将展示它,以防万一: L = [[01,02],[03,04],[05,06]] 最初,输出列表只是: OutputList = [1.1,1.2,1.3] 我在这两个列表上都使用了enumerate,以获得我上面所写的第一个列表
NewL = [(1.1,[01,02]),(1.2,[03,04]),(1.3,[05,06])]
我使用enumerate获得了上面的列表,其中包含[01,02]、[03,04]和[05,06]的方括号通常是从另一个列表中获得的。我将展示它,以防万一:
L = [[01,02],[03,04],[05,06]]
最初,输出列表只是:
OutputList = [1.1,1.2,1.3]
我在这两个列表上都使用了enumerate,以获得我上面所写的第一个列表
我现在面临的问题是,假设我只想输出[05,06]的值,它是NewL的1.3。我该怎么做?我在想这样的事情:
for val in NewL:
if NewL[1] == [05,06]:
print NewL[0]
但这是完全错误的,因为情况可能会发生变化,不一定总是[05,06],因为它也可以获得[03,04]和[01,02]的值。我刚刚使用enumerate,因此非常感谢您的帮助。for循环应该是这样的:
for val in NewL:
if val[1] == [5,6]:
print val[0]
它将打印
1.3
我不确定我是否理解这个问题,因此我将推断您需要什么:
考虑到您的两个初始列表:
L = [[01,02],[03,04],[05,06]]
OutputList = [1.1,1.2,1.3]
您可以使用以下方法生成转换后的列表:
NewL = list(zip(OutputList, L))
然后,如果要从OutputList
检索值,请从L
中给定1项:
val = [x for x, y in NewL if y == [05,06]][0]
但这样做会容易得多:
val = OutputList[L.index([05,06])]
请注意,如果未找到搜索项,这两个表达式都将引发一个
索引器
问题是什么?给定L
中的一个2成员列表,您希望能够从OutputList
中以相同索引获取浮点值吗?您可以在此处使用dic