Python-Count number of rows/columns值显示在
假设我有一个二维字符串数组,如下所示:Python-Count number of rows/columns值显示在,python,Python,假设我有一个二维字符串数组,如下所示: 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_numbe
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
请注意,我不想要“a”出现的总数,而是它出现的行数
我尝试过在行上循环并简单地计数,但我处理的是一个非常大的数据集(1000s x 1000s),所以速度非常慢。任何更快的解决方案都将不胜感激。如果包含该字符的数组数增加,您可以使用以下
get\u number\u 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
中满足'a'条件的所有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'))