z=[1,2,","]
count=0
for i in z:
if (",") in z:
count+=1
print count
此python代码包含列表中的所有逗号z
。为什么?答案是3.当它应该是一个。可以通过更改元素进行测试。小编程拼图
如果列表元素逗号“,”被删除,则程序产生空白,而不是2个逗号作为计数。
问题:
- 有人可以回答,请为什么逗号只获取算的?
- 为什么逗号数是3时,它应该是一个。
感谢
z=[1,2,","]
count=0
for i in z:
if (",") in z:
count+=1
print count
此python代码包含列表中的所有逗号z
。为什么?答案是3.当它应该是一个。可以通过更改元素进行测试。小编程拼图
如果列表元素逗号“,”被删除,则程序产生空白,而不是2个逗号作为计数。
问题:
感谢
将其更改为
if (",") in i:
真的,你应该使用更好的名称(i
通常指索引到一个数组或一个整数计..而你迭代列表中的实际项目)
for item in z:
if (",") in item:
count+=1
print count
你之所以再看到3为你的答案是因为这样:
if (",") in z:
要跨列表,并在您检查,如果','
在列表z
,它是列表中的每个元素进行迭代。你计数变量相应地增加。
你检查过三次,'是'是否在z中。是的。是的,它仍然是。是的。这是3
for i in z:
if i == ',':
count+=1
print count
当您使用if (",") in z
蟒蛇检查逗号是在你的清单,这将每次返回true,当你删除“”从列表中它永远不会产生真实,则将被计零,因此正确的版本将是
z=[1,2,","]
count=0
for i in z:
if i == ',':
count+=1
print count
,也是你的print语句不应该在你的身体
当你在众多的答案解决的具体问题,还要考虑你的方法是否是最有效的/可读。另请参阅https://docs.python.org/2/tutorial/datastructures.html#more-on-list count()。 – hexparrot 2014-11-03 19:07:10