如果为函数提供了种子值的序列seeds
,则需要为每个单个种子值计算它们在第二个序列xs
中显示的次数。然后它应该将计数作为整数列表返回,与种子值的顺序相同。如果seeds
包含重复值,请在返回的列表中保留重复计数。例如,count_each([10,20],[10,20,50,20,40,20])
应该返回[1,3]
和count_each('aeiou','encyclopedia') should return [1,2,1,1,0]
。
我坚持如何编程这个功能。这是我到目前为止所得到的,但我无法弄清楚我将如何计算第二个序列中的种子值的数量,而不仅仅是检查值是否存在。任何有关这方面的帮助将不胜感激。
def count_each(seeds,xs):
if seeds in xs:
if seeds == True
return seeds
elif seeds == False
return None
答案 0 :(得分:2)
我无法弄清楚我将如何计算第二个序列中种子值的数量,而不仅仅是检查这些值是否存在。
Python序列有一个方便的.count
方法。
>>> [1,1,1,2,3,4,5].count(1)
3
>>> "ababababcdefg".count("b")
4
答案 1 :(得分:2)
查看collections.Counter()
import collections
def count_each(seeds,xs):
c = collections.Counter(xs)
return [c[seed] for seed in seeds]
答案 2 :(得分:1)
def count_letter(seeds,xs):
for c in seeds:
count=0
for d in xs:
if c==d:
count=count+1
print (c,"Occured ",count,"times")
count_letter([10,20],[10,20,30,10])
count_letter('aeiou','encyclopedia')