[英]Convert dict to nested list, inserting keys into each sublist
我對這個問題有解決方案,但我很好奇是否有更好的方法。 我有這樣的命令:
dict1 = {
'key1':[['value1','value2','value3'],['value4','value5','value6']],
'key2':[['value7','value8','value9'],['value10','value11','value12']],
'key3':[['value13','value14','value15'],['value16','value17','value18']]}
我想將其轉換為嵌套列表,然后將鍵插入新的子列表中,如下所示:
nestedlist = [
['value1','value2','key1','value3'],['value4','value5','key1','value6'],
['value7','value8','key1','value9'],['value10','value11','key2','value12'],
['value13','value14','key2','value15'],['value16','value17','key2','value18'],
['value10','value11','key3','value12'],['value13','value14','key3','value15'],
['value16','value17','key3','value18']]
我可以通過以下方式解決此問題:
keys = [*dict1]
newlist = []
for item in keys:
for item2 in dict1[item]:
item2.insert(2,item)
newlist.append(item2)
因此,我該如何改進這段代碼?
這是通過列表理解的一種方法:
res = [[w[0], w[1], k, w[2]] for k, v in dict1.items() for w in v]
# [['value1', 'value2', 'key1', 'value3'],
# ['value4', 'value5', 'key1', 'value6'],
# ['value7', 'value8', 'key2', 'value9'],
# ['value10', 'value11', 'key2', 'value12'],
# ['value13', 'value14', 'key3', 'value15'],
# ['value16', 'value17', 'key3', 'value18']]
我會做類似的事情。 此處顯示的唯一區別是:
result = []
for k, l in dict1.items():
for ll in l:
ll.insert(2, k)
result.append(ll)
無需對dict1進行列表拆箱或[]訪問。 items()
返回一個元組列表,其中包含字典的每個鍵和值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.