我有一个列表:
[['EWR', 2, 3], ['Queens', 0, 5], ['Brooklyn', 1, 1] ]
如果我在变量中包含字符串Queens,该如何提取0?
换句话说,我将如何表达:我想要列表中第一个以Queens一词开头的int。
编辑:皇后(通常是字符串)始终位于第一位置。列表结构无法更改
答案 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]