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

时间:2015-05-16 23:01:17

标签: python

我正在尝试使用2个循环计算此列表中有多少个字符。 显然有31个字符,但输出结果显示我有32个... 这是怎么回事?

preg_match('~\b\d+(?: ?[a-z])?\b(?= [^\s]*,)~', $txt, $m)

输出正在跟随

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)

3 个答案:

答案 0 :(得分:1)

i = 0
for j in purebin[i]:

您反复查看purebin的第一项(仅限),其中包含八个字符。

添加打印声明以查看正在发生的事情

for j in purebin[i]:
    print(purebin[i])
    count = count + 1

答案 1 :(得分:1)

您的问题是在循环的每次迭代中将 i 重置为 0

您也可以使用len功能:

count = 0 
for element in purebin:
    count += len(element)

答案 2 :(得分:0)

您应该拥有for j in x,因为这是您在第二个循环中所关注的可迭代

purebin = ['11111111', '11111111', '11111111', '1000000']
count = 0 
for x in purebin:
    for j in x:
         count = count + 1

在您的版本中,您所做的只是反复计算第一个字符串,因为purebin[count] = purebin[0] '11111111'