所以我有一个小的工作代码,我只需要打印一个事件的计数,但到目前为止我只是成功打印实际的事件。
我需要打印一个项目的次数> 0
答案 0 :(得分:1)
您最后应添加return count
。
def countpos(lsts):
count = 0
for lst in lsts:
for val in lst:
if val > 0:
count += 1
return count
print countpos([[0, 0, 0, 0], [1, 0, 6, 0]]) # 2
您还可以使用生成器为符合条件的每个元素生成1
,然后对所有元素求和:
def countpos(lsts):
return sum(1 for lst in lsts
for val in lst
if val > 0)
print countpos([[0, 0, 0, 0], [1, 0, 6, 0]]) # 2
答案 1 :(得分:0)
def somefunction(y)
count = 0
for r in y:
for i in r:
if i >= 0:
count += 1
#probably need to print the occurrence here.
使用将存储答案的计数打印所有循环之外的答案
答案 2 :(得分:0)
input_lists = [[0, 0, 0, 0], [1, 0, 6, 0]]
count = sum([1 for input_list in input_lists for i in input_list if i > 0])
当然,如果您愿意,可以将其变为功能。基本上,您只需循环遍历input_lists中的列表,然后循环遍历每个列表中的值,检查该值是否大于0,并在每次找到大于零的值时构建1的列表。最后,您只需对该列表求和即可获得计数。这里应用的方法是调用列表理解,它是一种强大的技术。这个比你典型的第一个列表理解要复杂一点,因为我们正在做两个嵌套理解(列表中有两个'for'语句)和一个条件(if)
答案 3 :(得分:0)
2个更简单的方法:
使用lambdas:
def count(y):
return sum(map(lambda x: len(filter(lambda i: i > 0, x)), y))
不
def count(y):
return sum(len([i for i in x if i > 0]) for x in y)
答案 4 :(得分:-1)
def somefunction(y)
count = 0
for r in y:
for i in r:
if i >= 0:
count += 1
return count
return count
将返回总数。
print somefunction(myListofLists)
打印此函数将打印return语句。