【发布时间】:2017-06-08 12:54:33
【问题描述】:
在这个脚本中,我同时使用了列表推导和 for。我需要用理解替换 for 循环并将这个解决方案添加到列表理解中。
怎么加
for i in k:
count_list.append(l.count(i))
在这个块内
pairs = [int(pair/2) for pair in count_list if int(pair/2) != 0]
我的代码:
def sockMerchant(ar):
l = ar
k = set(l)
count_list = []
for i in k:
count_list.append(l.count(i))
pairs = [int(pair/2) for pair in count_list if int(pair/2) != 0]
return sum(pairs)
n = int(input().strip())
ar = list(map(int, input().strip().split(' ')))
result = sockMerchant(ar)
print(result)
【问题讨论】:
-
你能举个论证的例子吗?会让事情变得更容易
-
你为什么想要一个列表理解?使用
collections.Counter()代替,在循环中使用list.count()效率非常低。 -
亲爱的 Matjin 我不知道这个模块可能是因为这个原因 :) 我有一些解决方案,但我需要解决这个问题只使用列表理解。
-
@BahruzAghalarov:这是一个非常人为的限制。如果这是要求你对计数代码使用列表理解的作业,那么我建议你重新阅读课堂笔记和课本,如果需要,请向你的导师寻求帮助。
-
@BahruzAghalarov:如果您足够聪明,可以尝试操纵人们回答您,我相信您也可以弄清楚列表理解。祝你好运!
标签: python python-3.x for-loop list-comprehension