每两个元素增加列表中的计数器

时间:2017-01-31 22:07:52

标签: python

我有一个元素列表:

list = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5']

我以这种方式成对使用:

for x in range(0, len(list)-1):
    print(list[x], list[x+1])

这有效并且返回:

('elem1', 'elem2')
('elem2', 'elem3')
('elem3', 'elem4')
('elem4', 'elem5')

我想每次打印一行时增加一个计数器。我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

首先,不要使用list作为变量名,这可能会导致一些严重的问题。

其次,简单的方法就是初始化一个计数器并在循环内增加它。

const getJSON = require("async-get-json");
const getGitHubAPIStatus = getJSON("https://status.github.com/api/status.json");

module.exports.endpoint = async function (request, response)
{
    response.end(JSON.stringify(await getGitHubAPIStatus));
}

创建所需输出的另一种优雅方式是:

li = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5']

cnt = 0
for index in range(0, len(li)-1):
    cnt += 1
    print(li[index], li[index+1])

print cnt

我们将其分为两个列表,第一个列表为li = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5'] for cnt, (v, w) in enumerate(zip(li[:-1], li[1:])): print [v, w] print cnt ,第二个列表为['elem1', 'elem2', 'elem3', 'elem4']

每次迭代我们从第一个列表中获取一个,从第二个列表中获取第二个。

答案 1 :(得分:1)

此解决方案声明一个名为count的变量,并在每次迭代时增加它

listX = ['elem1', 'elem2', 'elem3', 'elem4', 'elem5']
count = 0
for x in range(0, len(listX)-1):
    print(list[x], list[x+1])
    count += 1

答案 2 :(得分:1)

您可以在for循环之前声明一个具有所需初始值的变量,并在for:中添加它:

    counter = 0
    for x in range(0, len(list)-1):
        print(list[x], list[x+1])
        counter += 1