我的列表列表如下所示:my_list = [[sub_list_1],[sub_list_2],...,[sub_list_n]]所需輸出my_dict[1] = [sub_list_1]
my_dict[2] = [sub_list_2]
my_dict[n] = [sub_list_n]我希望字典的鍵能夠自己生成。如何以Pythonic方式實(shí)現(xiàn)這一點(diǎn)?我會看某些問題,比如轉(zhuǎn)換字典python中的列表列表Python:列表列表到字典將嵌套列表轉(zhuǎn)換為字典但它們要么提供鍵列表,要么專注于使用列表中的某些信息作為鍵。或者,我嘗試以這種方式制作鍵列表:my_keys = list(range(len(my_list)))
my_dict = dict(zip(my_keys,my_list)它有效, 但是,這不起作用:my_dict = dict(zip(list(range(len(my_list))),my_list))這給了我一個語法錯誤??偨Y(jié)來說:有沒有一種方法可以在不顯式提供鍵的情況下生成列表字典?為什么組合代碼會引發(fā)語法錯誤,而兩步代碼卻有效?
4 回答

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個贊
我建議使用字典理解來實(shí)現(xiàn)您想要的效果,此外,我嘗試了您的實(shí)現(xiàn),沒有遇到任何問題(非常歡迎更多詳細(xì)信息):
my_list = [["sub_list_1"],["sub_list_2"],["sub_list_3"]] my_dict = dict(zip(list(range(len(my_list))),my_list)) alternative_dict = {iter:item for iter,item in enumerate(my_list)} print("yours : " + str(my_dict)) print("mine : " + str(alternative_dict))
輸出:
yours : {0: ['sub_list_1'], 1: ['sub_list_2'], 2: ['sub_list_3']} mine : {0: ['sub_list_1'], 1: ['sub_list_2'], 2: ['sub_list_3']}

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個贊
運(yùn)行您的代碼時我沒有收到錯誤消息:
>>> my_list = [["hello1"], ["hello2"]]
>>> my_dict = dict(zip(list(range(len(my_list))), my_list))
>>> my_dict
{1: ['hello1'], 2: ['hello2']}
您可以使用字典理解從列表列表創(chuàng)建列表字典:
my_dict = {i: sub_list for i, sub_list in enumerate(my_list)}

慕蓋茨4494581
TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊
這應(yīng)該可以做到
my_dict = {my_list.index(i) + 1: i for i in my_list}
請注意,我添加了+1
從鍵 1 而不是 0 開始,以滿足您的期望
添加回答
舉報
0/150
提交
取消