如果你有一个列表,如下面的mylist
mylist = [['start', 'a', 'next'],['next','b','end'],['previous','c','start']]
如何创建一个字典,其中键等于list [0] [0]和value = list
例如字典将是:
{'start': ('a', 'next'), 'next': ('b', 'end'), 'previous': ('c', 'start')}
我正在尝试创建一个转换函数来遍历保存转换的列表列表。
NEW
我现在正在尝试进行列表理解,但是我继续使用此代码获取“IndexError:string index out of range”
d = {x[0]: (x[1],x[2]) for x in self.epsilon}
print(d)
我的列表存储在self.epsilon中,它等于: self.epsilon = [['q1','0','q1'],['q1','1','q2'],['q2','0','q2'],['q2 ','1','q1']]
答案 0 :(得分:2)
最简单的方法是进行字典理解:
{x[0]: tuple(x[1:]) for x in mylist}
这要求mylist中的每个元素都是一个数组,至少有一个索引为0的元素用作键,并从每个嵌套数组中的其余元素创建一个元组,用作相关键的值
答案 1 :(得分:0)
mylist = [['start', 'a', 'next'],['next','b','end'],['previous','c','start']]
dic={}
for i in mylist:
dic[i[0]]=i[1:]
print dic
如果您不希望使用list
,而tuple
作为dict的使用值
mylist = [['start', 'a', 'next'],['next','b','end'],['previous','c','start']]
dic={}
for i in mylist:
dic[i[0]]=tuple(i[1:])
print dic
答案 2 :(得分:0)
在python 3和2.7中:
a_list = [['start', 'a', 'next'],['next','b','end'],['previous','c','start']]
a_dict = {l[0]: (l[1], l[2]) for l in a_list}
print(a_dict)
# {'start': ('a', 'next'), 'previous': ('c', 'start'), 'next': ('b', 'end')}
替代方式:
a_dict = dict([[lst[0], (l[1], l[2])] for l in a_list])
# {'start': ('a', 'next'), 'previous': ('c', 'start'), 'next': ('b', 'end')}
答案 3 :(得分:0)
mylist = [['start','a','next'],['next','b','end'],['previous','c','start']]
最简单的方法是字典理解
d = {i [0] :( i [1],i [2])for i in mylist}
你得到d作为所需的输出
{'start':('a','next'),'next':('b','end'),'previous':('c','start')}
最短时间复杂度时间:6μs