Python 计数列表元素会产生错误的答案
我试图用两个循环来计算这个列表中有多少个字符。 显然有31个字符,但输出显示我有32个。。。 这是怎么回事Python 计数列表元素会产生错误的答案,python,Python,我试图用两个循环来计算这个列表中有多少个字符。 显然有31个字符,但输出显示我有32个。。。 这是怎么回事 purebin = ['11111111', '11111111', '11111111', '1000000'] count = 0 for x in purebin: i = 0 for j in purebin[i]: count = count + 1 print(purebin) print(count) 输出如下 ['11111111',
purebin = ['11111111', '11111111', '11111111', '1000000']
count = 0
for x in purebin:
i = 0
for j in purebin[i]:
count = count + 1
print(purebin)
print(count)
输出如下
['11111111', '11111111', '11111111', '1000000']
32
对于x中的j,您应该有
,因为这是您在第二个循环中关心的iterable
purebin = ['11111111', '11111111', '11111111', '1000000']
count = 0
for x in purebin:
for j in x:
count = count + 1
在您的版本中,您所做的只是一遍又一遍地计算第一个字符串,因为purebin[count]
=purebin[0]
即'11111111'
i = 0
for j in purebin[i]:
您反复查看purebin
的第一项(仅限),它有八个字符
添加打印语句以查看发生了什么
for j in purebin[i]:
print(purebin[i])
count = count + 1
您的问题是在循环的每次迭代中将i重置为0
您还可以使用len
功能:
count = 0
for element in purebin:
count += len(element)
您将检查第一个元素四次。提示:你通过了purebin[i]
而不是x
。我在上传这个问题10秒后意识到了这一点。