2016-11-14 173 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

這正是我期待的!謝謝! –