Python 计数列表元素会产生错误的答案

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',

我试图用两个循环来计算这个列表中有多少个字符。 显然有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', '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秒后意识到了这一点。