我在這裏有一個問題,它計數的空列表,不得計數字典計數值
有沒有辦法不計算空列表?
dic ={None: [[], [], [(3, 2, 0)], [(3, 1, 0)], [], [], [(4, 3, 2), (4, 3, 0)], [(4, 2, 0)]]}
x = list(map(len, dic.values()))
print(x[0])
輸出所需
5
我的代碼Outpute
8
我在這裏有一個問題,它計數的空列表,不得計數字典計數值
有沒有辦法不計算空列表?
dic ={None: [[], [], [(3, 2, 0)], [(3, 1, 0)], [], [], [(4, 3, 2), (4, 3, 0)], [(4, 2, 0)]]}
x = list(map(len, dic.values()))
print(x[0])
輸出所需
5
我的代碼Outpute
8
dic.values()
包裹全部從裏面另一個列表不同的密鑰值:
>>> dic.values()
[[[], [], [(3, 2, 0)], [(3, 1, 0)], [], [], [(4, 3, 2), (4, 3, 0)], [(4, 2, 0)]]]
,因爲你只有一個ke y dic.values()
中只有一個元素,當您執行x = list(map(len, dic.values()))
時,您將獲得8
,因爲這是內部列表上的長度。
您需要遍歷內部列表dic.values()[0]
,並從那裏長度:
>>> sum(map(len, dic.values()[0]))
5
UPDATE:如果您正在使用Python 3中,你可以得到的第一個值作爲list(dic.values())[0]
:
>>> sum(map(len, list(dic.values())[0]))
5
這個SO Post列出了許多方法可以得到第一個值。
在你的例子中,我看到4沒有空列表,而不是5 –