从与其他列表对应的列表中获取值

时间:2017-04-24 09:22:41

标签: python list

我有一个包含以下内容的列表:

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]的值。我使用枚举非常新,所以我很感激任何帮助。

2 个答案:

答案 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