Python:最后一个项目位置

时间:2014-03-03 12:40:38

标签: python position enumerate

所以我有一个巨大的字符串,我逐个元素地处理它。我想知道剩下多少,所以我尝试将当前位置字减去最后一个位置字以查看剩下多少。我试过这样的事情:

with codecs.open("C:\\dna_chain.txt",'r', "utf-8") as file:
    for line in file:
        temp_buffer = line.split()
        for i,word in enumerate(temp_buffer):
            print(enumerate(temp_buffer[i]))
            print(enumerate(temp_buffer[-1]))

我在记忆中获得了位置并且它们是相同的。

2 个答案:

答案 0 :(得分:2)

enumerate()返回一个生成器对象;你只打印了对象的表示,然后再次丢弃它。然后第二行重用现在对象的相同内存位置。

您可以在此处直接引用temp_buffer对象而不是enumerate()

for i, word in enumerate(temp_buffer):
    print(temp_buffer[i])
    print(temp_buffer[-1])

temp_buffer[i]与该循环中的word相同。 temp_buffer[-1]是您列表中的最后一个词。

如果您想知道要处理多少单词,请使用len(temp_buffer) - itemp_buffer列表的长度,减去当前位置。

答案 1 :(得分:1)

您应事先计算项目数:

words = len(temp_buffer)
你的代码中的

看起来像是

import codecs

with codecs.open("C:\\dna_chain.txt",'r', "utf-8") as file:
    for line in file:
        temp_buffer = line.split()
        words = len(temp_buffer)
        for i,word in enumerate(temp_buffer):
            print(i, word, words-i-1)

这将打印索引i,单词word以及此行words-i-1中剩余项目的数量。