如何在列表列表中获取商品的位置?

时间:2017-11-10 19:09:31

标签: python list

我不知道如何获得某些物品'列表中的位置。

list = [[1,2,3],[4,5,6],[7,8,9]]

如果我想获得' 4'在列表中, 结果应该是这样的。

list[1][0]

或其他表达方式。 谢谢

3 个答案:

答案 0 :(得分:1)

如果您正在尝试询问如何从矩阵(2D列表)中索引项目,那么想象一下这样的列表。     [A,B,C]

a = [ 1 , 2 , 3 ]
b = [ 4 , 5 , 6 ]
c = [ 7 , 8 , 9 ]

要访问任何号码,您需要访问它所在的子列表(即首先是a或b或c,然后访问您所选择的子列表中的哪个项目。)

我想说我想要的是第四名。四是在第二个列表中,它是远离第一个索引的一个索引,因此我们使用list[1]访问整个列表。但是,我们想要这个列表的第一个元素,它是远离第一个元素的零元素,所以我们将它作为[0]来访问,但是在这种情况下a是list [1],所以整体上你想要的语句写作将是:

list[1][0]

另一个例子是如果你想获得数字3. 3在子列表[0]中,我们可以想象它被命名为a,如果我们想从a中访问3,我们会输入[2] 。但是,在这种情况下,我们没有列表' a'而是一个名为list [0]的列表,所以我们输入:

list[0][2].

希望这有帮助!

更新

这是一个简单的python解决方案。它检查矩阵my_list中的每个子列表中是否有四个。

for sub_list in my_list:
  if 4 in sub_list:
    print(my_list.index(sub_list),sub_list.index(4))

答案 1 :(得分:1)

试试第一个清单。如果一开始你没有成功,请尝试再试一次:

def indices(xss,x):
    for i,xs in enumerate(xss):
        try:
            return i,xs.index(x)
        except ValueError:
            continue
    raise ValueError

例如,

>>> x = [[1,2,3],[4,5,6],[7,8,9]]
>>> indices(x,4)
(1, 0)

顺便说一下 - 你应该避免调用列表变量list,因为这是内置的名称。

答案 2 :(得分:0)

diffy1 = df.iloc[0:].apply(lambda x: np.sqrt(sum((df.iloc[accepted_indices[0]]-x)**2)), axis=1).values
diffy2 = df.iloc[0:].apply(lambda x: np.sqrt(sum((df.iloc[accepted_indices[1]]-x)**2)), axis=1).values
diffy3 = df.iloc[0:].apply(lambda x: np.sqrt(sum((df.iloc[accepted_indices[2]]-x)**2)), axis=1).values