a = [[1,2,3],[4,5,6]]
我希望获得0
,1
和2
的{{1}}以及3
获取1
,{{1} }和4
。
当然我可以这样做:
5
有更好的方法吗?
答案 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")