python给定TypeError:count即使给定参数也至少接受*参数
我有以下代码,其中我将I作为cout的参数,但仍然得到TypeError:count至少接受1个给定的参数0 str.counti>1应该是s.counti>1,这将修复您的错误 您可以在seti:或集合中使用for i。计数器可以更有效地解决您的任务:python给定TypeError:count即使给定参数也至少接受*参数,python,arguments,cout,Python,Arguments,Cout,我有以下代码,其中我将I作为cout的参数,但仍然得到TypeError:count至少接受1个给定的参数0 str.counti>1应该是s.counti>1,这将修复您的错误 您可以在seti:或集合中使用for i。计数器可以更有效地解决您的任务: >>> from collections import Counter >>> s = 'abbc' >>> Counter(s).most_common(1)[0][1] == 1 Fal
>>> from collections import Counter
>>> s = 'abbc'
>>> Counter(s).most_common(1)[0][1] == 1
False
时间:
s = 'abcdefghijklmnopqrstuvwxyzz' # a worst case?
%timeit Counter(s).most_common(1)[0][1] == 1
13.2 µs ± 27.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit len(set(s)) == len(s)
1.33 µs ± 3.46 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%%timeit
for i in set(s):
if s.count(i) > 1:
break
1.72 µs ± 17.5 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%%timeit
for i in s:
if s.count(i) > 1:
break
6.78 µs ± 14.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
此代码使用参数正确调用count,因此这不是您正在运行的代码。给我们看看真正的代码。@JohnGordon实际上这个错误是由他们的code@Chris_Rands怎样该代码示例显然调用str.counti。@JohnGordon他们的意思是s.counti try str.count vs str.count,@JohnGordon str.counti在本例中,字符串实例丢失;我同意回溯,它有点不主动,但其他一切都一样,比如try list.append[]。实际上,在一些情况下,您应该编写这样的调用,例如str.maketrans-perhapsI实际上认为最有效的测试应该是lensets==lens@FHTMitchell哦,是的,这可能更容易理解,但我必须确定我在你的答案中添加了一些是为了好玩。希望你不介意:@FHTMitchell谢谢!计数器的速度惊人地慢,如果对更长的字符串使用s*10000,它会改变吗?或者更确切地说是s[:-1]*10000+z'igues@FHTMitchelllist.count以C的速度运行,因此对于短序列来说速度很快,但时间复杂度比计数器差得多,因此对于较长的序列,请检查这些计时
s = 'abcdefghijklmnopqrstuvwxyzz' # a worst case?
%timeit Counter(s).most_common(1)[0][1] == 1
13.2 µs ± 27.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit len(set(s)) == len(s)
1.33 µs ± 3.46 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%%timeit
for i in set(s):
if s.count(i) > 1:
break
1.72 µs ± 17.5 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%%timeit
for i in s:
if s.count(i) > 1:
break
6.78 µs ± 14.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)