![](/img/trans.png)
[英]How to count number of times a value appears in nested dictionary in python?
[英]Python - Count number of rows/columns value appears in
假設我有一個二維數組的字符串,如下所示:
A = [['a', 'b', 'b'],
['c', 'c', 'a'],
['d', 'c', 'a']]
我想知道給定元素出現的行數,以便我得到輸出:
In [1]: get_number_rows('a')
Out[1]: 3
In [2]: get_number_rows('b')
Out[2]: 1
In [1]: get_number_rows('c')
Out[1]: 2
In [2]: get_number_rows('d')
Out[2]: 1
number of occurrences of 'a', but the number of rows it appears in. 請注意,我不想要'a'的出現次數,而是它出現的行數。
我試過循環遍歷行並簡單計數,但我正在處理一個非常大的數據集(1000s x 1000s),所以它非常慢。 任何更快的解決方案將不勝感激
您可以使用以下get_number_rows()
方法來get_number_rows()
包含該字符的數組的數量:
A = [['a', 'b', 'b'],
['c', 'c', 'a'],
['d', 'c', 'a']]
def get_number_rows(char):
return len([x for x in A if char in x])
get_number_rows('a')
>> 3
get_number_rows('b')
>> 1
get_number_rows('c')
>> 2
get_number_rows('d')
>> 1
對於行,嘗試類似的東西
len([x for x in A if 'a' in x])
該列表理解列出了A
滿足x
中'a' in x
條件的所有列表'a' in x
。 然后,您可以使用該列表的長度來獲取它們的總數。
if __name__ == "__main__":
A = [['a', 'b', 'b'],
['c', 'c', 'a'],
['d', 'c', 'a']]
def get_number_rows(A, desired_element):
"""
Pass in two dimensional array, A as first parameter
Pass in desired char element, desired_element as 2nd parameter.
Function will return number of occurrences of desired_element in A.
"""
element_count = 0 # Int to keep track of occurrences
for group in A: # For nested array in A
if desired_element in group: # If our desired element is in the sub array
element_count += 1 # Increment our counter
return element_count # After completion, return the counter
print(get_number_rows(A, 'a'))
print(get_number_rows(A, 'b'))
print(get_number_rows(A, 'c'))
print(get_number_rows(A, 'd'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.