我正在创建一个函数,将此函数应用于元组时,它应该返回元组中的偶数索引元素。怎么不返回第四个索引元素呢?

def oddTuples(aTup):
    '''
    aTup: a tuple

    returns: tuple, every other element of aTup.
    '''
    evenIndex = ()
    evenTuple = ()
    for i in aTup:
        if aTup.index(i)%2 == 0:
            evenIndex = evenIndex +  (aTup.index(i),)
            evenTuple += (aTup[aTup.index(i)],)
    return evenTuple

最佳答案

使用a.index将返回该项目首次出现的索引。当元组中的项不是唯一时,您真的不能指望这一点。

您应该考虑改用enumerate

for i, v in enumerate(aTup):
    if i % 2 == 0:
        ...


您最好还是使用切片,不要太冗长:

aTup[::2] # starts at zero, stops at the length of the tuple, steps in 2s




另外,请记住,默认情况下,索引从0开始。但是使用enumerate可以使它从选定的数字开始:

for i, v in enumerate(aTup, 1) # starts counting from 1

关于python - Python索引元组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38436073/

10-10 08:13