有一个列表列表 - 如何获取包含项目的列表的索引?

时间:2012-10-20 12:37:52

标签: python list

a = [[1,2,3],[4,5,6]]

我希望获得012的{​​{1}}以及3获取1,{{1} }和4

当然我可以这样做:

5

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

更新答案:

这是我原来答案的改进版本,这得益于zenply,OP的输入。

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

def create_dict_2(a):
    my_dict = {}
    for index, sublist in enumerate(a):
        for ele in sublist:
            if not ele in my_dict:
                my_dict[ele] = index
    return my_dict

结果:

>>> my_dict = create_dict(b)
>>> my_dict[4]
1
>>> my_dict[5]
1
>>> my_dict[1]
0
>>> my_dict[7]
3

答案 1 :(得分:1)

不确定这是否更具可读性,但它确实处理了包含多个项目的子列表的情况:

def get_index(my_list, my_item):
    indices = [i for i, sublist in enumerate(my_list) if my_item in sublist]
    if len(indices) == 1:
        return indices[0]
    raise ValueError("Item not in any list or in multiple lists")