3D列表中的访问元素

时间:2019-04-16 13:49:48

标签: python

我有一个列表:

[['EWR', 2, 3], ['Queens', 0, 5], ['Brooklyn', 1, 1] ]

如果我在变量中包含字符串Queens,该如何提取0?

换句话说,我将如何表达:我想要列表中第一个以Queens一词开头的int。

编辑:皇后(通常是字符串)始终位于第一位置。列表结构无法更改

4 个答案:

答案 0 :(得分:3)

IIUC,您可以使用以下list comprehension。如果您对第一个整数感兴趣,只需在第一个字符串为'Queens'时为子列表建立索引以选择第二个值:

l = [['EWR', 2, 3], ['Queens', 0, 5], ['Brooklyn', 1, 1] ]
[i[1] for i in l if i[0] == 'Queens']
# [0]

答案 1 :(得分:0)

如果您确切地想要 first int ,并且不确定要使用哪个索引,可以使用列表理解和内置Python filter()函数进行以下操作。因为我们在列表外理解中利用了generators而不是lists的优势,所以在找到第一个int值或第一个值{ {1}}。

Queens

答案 2 :(得分:0)

您可能只是蛮力地使用它,使例子易于理解:

def find_in_3d(input, your_list):
    for second_layer in your_list:
            if input in second_layer:
                return second_layer[1]

答案 3 :(得分:0)

遍历列表,并检查列表中是否存在Queens,然后在输出列表中附加第二个元素

lst = [['EWR', 2, 3], ['Queens', 0, 5], ['Brooklyn', 1, 1] ]

ext_list = []
for l in lst:
    if 'Queens' in l:
        ext_list.append(l[1])
print(ext_list)
#[0]