我有一个包含以下内容的列表:
NewL = [(1.1,[01,02]),(1.2,[03,04]),(1.3,[05,06])]
和我使用枚举来获得上面的列表,其中包含[01,02],[03,04]和[05,06]的方括号通常从另一个列表中获得。为了以防万一,我会展示它:
L = [[01,02],[03,04],[05,06]]
最初输出列表只是:
OutputList = [1.1,1.2,1.3]
我在这个列表中使用枚举来获取我所拥有的作为上面第一个列表。
我现在面临的问题是,让我说我只想从NewL输出[05,06]的值1.3。我该怎么做?我想的是:
for val in NewL:
if NewL[1] == [05,06]:
print NewL[0]
但是它完全错了,因为它可能会在[05,06]不必要的地方发生变化,因为它也可以获得[03,04]和[01,02]的值。我使用枚举非常新,所以我很感激任何帮助。
答案 0 :(得分:0)
for循环应该是这样的:
for val in NewL:
if val[1] == [5,6]:
print val[0]
它会打印1.3
答案 1 :(得分:0)
我不确定我是否理解这个问题,所以我会推断出你需要的东西:
鉴于你的2个初始名单:
L = [[01,02],[03,04],[05,06]]
OutputList = [1.1,1.2,1.3]
您可以使用以下方式生成转换后的列表:
NewL = list(zip(OutputList, L))
然后,如果您要从L
检索值,则会从OutputList
给出1个项目:
val = [x for x, y in NewL if y == [05,06]][0]
但这样做会容易得多:
val = OutputList[L.index([05,06])]
请注意,如果找不到搜索到的项目,这两个表达式都会引发IndexError