我有以下列表清单:
[[u'3', u'4'], [u'4', u'5'], [u'7', u'8'], [u'1', u'2'], [u'2', u'3'], [u'6', u'7'], [u'5', u'6']]
我想获得:
{3:'4', 4:'5', 7:'8', 1:'2', 2:'3', 6:'7', 5:'6'}
列表可能很长,因此需要尽可能提高效率。
每个"对的第一个元素" [[first, second], ...]
是唯一的,因此我们可以从中制作字典。
我尝试了以下内容,但我认为它会很慢:
def getdict(l):
result = {}
for e in l:
result[int(e[0])] = e[1]
return result
答案 0 :(得分:3)
您可以使用词典理解:
>>> l = [[u'3', u'4'], [u'4', u'5'], [u'7', u'8'], [u'1', u'2'], [u'2', u'3'], [u'6', u'7'], [u'5', u'6']]
>>> {int(key): value for key, value in l}
{1: u'2', 2: u'3', 3: u'4', 4: u'5', 5: u'6', 6: u'7', 7: u'8'}
请注意,您将失去"重复,如@凯文的例子:
>>> l = [['1', '2'], ['1', '3']]
>>> {int(key): value for key, value in l}
{1: '3'}
答案 1 :(得分:1)
my_dict = {}
for item in my_list:
my_dict[int(item[0])] = item[1]