【发布时间】:2011-12-03 20:39:51
【问题描述】:
我有一个数组:x = [ [1, 2], 1, 1, [2, 1, [1, 2]] ]
我想计算数字1 的每次出现,并将该数字存储在变量one_counter 中。 x.count(1) 仅返回 2 次出现的 1,这是不够的。
我下面的代码符合我的目的,并将5 存储在one_counter 中,但是它看起来很乱,对我来说感觉很不合时宜。
有什么建议可以提高它的 pythonicity 并将其扩展为更多维度的列表吗?
谢谢!
x = [[1, 2], 1, 1, [2, 1, [1, 2]]]
one_counter = 0
for i in x:
if type(i) == list:
for j in i:
if type(j) == list:
for k in j:
if k == 1:
one_counter += 1
else:
if j == 1:
one_counter += 1
else:
if i == 1:
one_counter += 1
【问题讨论】:
-
规模与这有什么关系?
-
@IgnacioVazquez-Abrams 我猜他过度使用了 Scale 这个词,他可能意味着将他的数据类型扩展到更多维度的列表中。
-
@DhruvPathak 是的,先生!我误解了它的规模。
-
那么你是怎么得到这个列表的,为什么你需要这个计数?整个事情看起来很奇怪。
-
@Karl 如果我说是我在练习、遇到障碍并寻求帮助,你会不高兴吗?