相关疑难解决方法(0)

大多数pythonic计算匹配元素的方法是可迭代的

我有一个可迭代的条目,我想收集一些简单的统计数据,比如可以被2整除的所有数字的数量以及可被3整除的所有数字的数量.

我的第一个选择,虽然只迭代列表一次并避免列表扩展(并保持拆分循环重构),看起来相当臃肿:

(alt 1)

r = xrange(1, 10)

twos = 0
threes = 0

for v in r:
  if v % 2 == 0:
    twos+=1
  if v % 3 == 0:
    threes+=1

print twos
print threes
Run Code Online (Sandbox Code Playgroud)

这看起来相当不错,但是有将表达式扩展到列表的缺点:

(alt 2)

r = xrange(1, 10)

print len([1 for v in r if v % 2 == 0])
print len([1 for v in r if v % 3 == 0])
Run Code Online (Sandbox Code Playgroud)

我真正喜欢的是像这样的函数:

(alt 3)

def count(iterable):
  n = 0
  for i in …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

16
推荐指数
2
解决办法
1万
查看次数

迭代的Python名称,可以多次迭代

我正在努力改进我的文档.我想说这个函数接受的是collections.Iterable,但是代码会迭代迭代多次."list"太具体了,"iterable"不起作用,因为一些iterables只能迭代一次.

有东西的名字吗?"重新迭代"?多迭代?

python

6
推荐指数
2
解决办法
144
查看次数

标签 统计

python ×2

list-comprehension ×1