[英]How do I make a list comprehension for 1/3 of a dictionary?
我對 python 比較陌生,我開始學習列表理解,起初它們看起來有點復雜,但隨着時間的推移開始變得直觀。 但是,有一個問題我還沒有解決
function 接收字典作為參數,其值如下所示:
datadict = dict(a1=[], a2=[], a3=[], b1=[], b2=[], b3=[], c1=[], c2[], c3=[])
一本包含一些列表的字典,其中當然也包含(浮動)值所有列表都具有相同的 len()
function 應該根據這樣的元組列表中的字母將嵌套列表與字典分開:
list_a = []
for entry in range(len(datadict["a"])):
list_a.append((
datadict["a1"][entry],
datadict["a2"][entry],
datadict["a3"][entry]
))
這行得通,但在我看來,它看起來非常笨重/難以閱讀,而且我無法從中理解列表。 我嘗試使用 zip() 方法,嘗試解包,但我無法弄清楚。
我不確定我是否正確理解了任務的描述。 通常,您應該自定義 function 以嵌入邏輯並在列表理解中使用它。 它更具可讀性。
這是一個基於您的帖子的示例:
datadict = dict(a1=[1,2,3], a2=[4,5,6], a3=[7,8,9], b1=[0,0,0], b2=[1,1,1], b3=[2,2,2])
def f(d, i):
return (d['a1'][i], d['a2'][i], d['a3'][i])
result = [f(datadict, n) for n in range(len(datadict['a1']))]
print(result)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.