在枚举期间更改collection.Counter?

时间:2017-02-15 20:28:09

标签: python collections enumeration

counter = Counter()
// fill data into counter
for a, b in counter.most_common():
    if (b > 1):
        counter[a] = np.log(b)
    else:
        counter[a] = -np.log((1 / (b+0.01)))

据我所知,根据我的审判,这是安全的。当我在枚举时更改集合时,没有坏事发生。在其他语言中,在for的每个周期中,counter.most_common()值都会被评估。

这在Python中也不会发生吗?

1 个答案:

答案 0 :(得分:0)

不,它没有。一个更具说明性的例子:

def example():
    print("Ping")
    return [1,2,3,4]

for x in example():
    print(x)

输出:

Ping
1
2
3
4