我正在嘗試計算嵌套串列中的標簽,并希望獲得有關如何處理它的任何幫助。下面給出了我要計算的陣列示例。這不是真正的陣列,而是一個足夠好的近似:
x = [[[0,0,1,0,2,3],-1],[[-1,1,1,0,2,5],-1],[[0,0,1,0,2,1],-1],[[0,0,-1,0,2,3],0]]
我想要的是計算中間串列的第二個元素中給定整數的所有出現次數(為了更好地可視化,我想像這樣計算X串列中的所有出現次數[[[],X]])。
例如,-1在上述陣列中計數的結果是 3,而不是 5。我不想進入回圈和計數器以及這種幼稚的計算,因為我正在使用的陣列相當大。有沒有處理這種情況的標準python庫?
uj5u.com熱心網友回復:
一種方法:
data = [[[0, 0, 1, 0, 2, 3], -1], [[-1, 1, 1, 0, 2, 5], -1], [[0, 0, 1, 0, 2, 1], -1], [[0, 0, -1, 0, 2, 3], 0]]
res = sum(1 for _, y in data if y == -1)
print(res)
輸出
3
或者,collections.Counter如果您需要計算多個元素,請使用 。
res = Counter(y for _, y in data)
print(res)
輸出
Counter({-1: 3, 0: 1})
第三種選擇是使用operator.countOf:
from operator import countOf
res = countOf((y for _, y in data), -1)
print(res)
輸出
3
uj5u.com熱心網友回復:
您可以使用collections.Counter:
from collections import Counter
c = Counter((i[1] for i in x))
c[-1]
輸出:
>>> c[-1]
3
>>> c
Counter({-1: 3, 0: 1})
uj5u.com熱心網友回復:
x = [
[ [0,0,1,0,2,3], -1],
[ [-1, 1, 1, 0, 2, 5], -1],
[ [0, 0, 1, 0, 2, 1], -1],
[ [0, 0, -1, 0, 2, 3], 0]
]
這些是串列 [ [....], x] 的專案以及另一個串列和一個整數。您想計算 x 為 -1 而不是 0 的次數。
x = [
[ [0,0,1,0,2,3], -1],
[ [-1, 1, 1, 0, 2, 5], -1],
[ [0, 0, 1, 0, 2, 1], -1],
[ [0, 0, -1, 0, 2, 3], 0]
]
def counter(_list, element):
count = 0
for item in _list:
if item[1] == element:
count = 1
return count
print(counter(x, -1))
>>> 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335414.html
上一篇:如何從Python中的input()函式獲取多字符輸出
下一篇:如何識別變數是否在串列中?
