2016-11-14 105 views
0

我有一个列表的列表中的格式如下:从列表列表创建字典

[['a'],['1'],['2'],['3'], ['b'],['4'],['5'],['6']] 

我所需的输出是:

[['a', '1'], ['a', '2'], ['a','3'],['b', '4'],['b', '5'],['b', '6']] 

或更妙的是:

{'a':['1','2','3'], 'b':['4','5','6']} 

基本上,“数值”从来​​没有相同的大小(认为a可以包括1 2和3,b可以包括4 5 6 7和8等)

这样做最简单的方法是什么?使用正则表达式?

感谢

+0

列表列表而不是列表元素的列表是什么?你可以先将它展平成元素列表(或者调整产生列表的代码,以便产生一个简单的列表)。 –

回答

2

您可以使用for循环,并检查该元素是一个数字或不:

d = {} 
for i in lst: 

    if not i[0].isdigit(): # Check if element is a digit. If not, add a key with the current value of i[0] 
     d[i[0]] = [] 
     current = i[0] 

    else: 
     d[current].append(i[0]) 

输出:

>>> d 
{'a': ['1', '2', '3'], 'b': ['4', '5', '6']} 

这在列表中假设一切一个字符串

+0

这正是我期待的!谢谢! –