在嵌套列表中嵌套嵌套项[python]

时间:2013-11-14 01:48:48

标签: python list python-2.7

这是我的嵌套列表

list = [[01,"ny",100], [02,'jr",200], [03, "la", 300,"ny"]]

我的问题是:

如何在嵌套列表的特定位置搜索项目 例如:我想在嵌套列表的第二个位置搜索项目“ny” 意思是,我的搜索必须匹配[] [1]位置中的项目“ny”,它必须忽略[3] [3]中的“ny”。

3 个答案:

答案 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':
        ...