这是我的嵌套列表
list = [[01,"ny",100], [02,'jr",200], [03, "la", 300,"ny"]]
我的问题是:
如何在嵌套列表的特定位置搜索项目 例如:我想在嵌套列表的第二个位置搜索项目“ny” 意思是,我的搜索必须匹配[] [1]位置中的项目“ny”,它必须忽略[3] [3]中的“ny”。
答案 0 :(得分:3)
使用列表理解:
>>> lst = [[01,"ny",100], [02,"jr",200], [03, "la", 300,"ny"]]
>>> [sublst for sublst in lst if sublst[1] == "ny"]
[[1, 'ny', 100]]
要检查ny
是否存在,请将any
与生成器表达式一起使用:
>>> any(sublist[1] == "ny" for sublist in lst)
True
>>> any(sublist[1] == "xy" for sublist in lst)
False
顺便说一句,不要使用list
作为变量名。它影响内置函数list
。
更新:您也可以按照@DSM的建议使用以下内容。
>>> "ny" in (sublist[1] for sublist in lst)
True
答案 1 :(得分:0)
首先,不要覆盖内置的list
。
第二,您可以使用内置的filter
来查找所有匹配项:
list_ = [[01,"ny",100], [02,"jr",200], [03, "la", 300,"ny"]]
matches = filter(lambda element: element[1] == 'ny', list_)
答案 2 :(得分:-1)
你的想法
list[0][1]
编辑:
for inner in list:
if inner[1] == 'ny':
...