Python:向空元组添加元组元素

Python:向空元组添加元组元素,python,function,tuples,element,Python,Function,Tuples,Element,该函数将一个元组作为输入,并返回一个元组,其中包含aTup的奇数项,即aTup[1],aTup[3],等等。在第十行,newtup+=aTup[i]我收到一个错误。请详细说明原因,并请纠正问题。我知道这个问题也有一个单一的解决方案,但我不想要那个。我想知道我在第十行犯错误的原因和改正方法。我很高兴得到帮助。 范围函数中的(num+1)是extra,您只需要num(我想您会得到索引错误。) 是的,我监督了元组错误,@zondo你的range函数中的(num+1)是额外的,你只需要num(我想你会得

该函数将一个元组作为输入,并返回一个元组,其中包含
aTup
的奇数项,即
aTup[1]
aTup[3]
,等等。在第十行,
newtup+=aTup[i]

我收到一个错误。请详细说明原因,并请纠正问题。我知道这个问题也有一个单一的解决方案,但我不想要那个。我想知道我在第十行犯错误的原因和改正方法。我很高兴得到帮助。 范围函数中的
(num+1)
extra,您只需要
num
(我想您会得到索引错误。)

是的,我监督了元组错误,@zondo

你的range函数中的
(num+1)
额外的,你只需要
num
(我想你会得到索引错误。)


是的,我监督了元组错误,@zondo

您正在将数字本身添加到元组中。只有元组可以添加到元组。将
newtup+=aTup[i]
更改为
newtup+=(aTup[i],)
。这将修复当前错误,但正如@Rockybilly指出的,使用
范围(0,num+1)
是错误的。这将使用一个太多的数字。将其更改为
范围(0,num)
。您也可以省略0,因为这是
range()

的默认值,您正在将数字本身添加到元组中。只有元组可以添加到元组。将
newtup+=aTup[i]
更改为
newtup+=(aTup[i],)
。这将修复当前错误,但正如@Rockybilly指出的,使用
范围(0,num+1)
是错误的。这将使用一个太多的数字。将其更改为
范围(0,num)
。您也可以省略0,因为这是
range()

元组的默认值是不可变的,因此不能附加到元组。我想把这些值附加到一个列表中,完成后将列表更改为一个元组

for i in range(0,num):
    if (i % 2 == 1):
        newtup += aTup[i]
    else:
        continue

元组是不可变的,因此不能附加到元组。我想把这些值附加到一个列表中,完成后将列表更改为一个元组

for i in range(0,num):
    if (i % 2 == 1):
        newtup += aTup[i]
    else:
        continue
如果aTup至少有2个元素,则应能正常工作

切片是Python最好的东西之一

如果aTup至少有2个元素,则应能正常工作


切片是Python最好的功能之一。

不能添加元组和数字。您的行可能应该是
newtup+=(aTup[i],)
。不过我还没检查过。添加括号和逗号会将数字转换为具有单个成员的元组。不能添加元组和数字。您的行可能应该是
newtup+=(aTup[i],)
。不过我还没检查过。加上括号和逗号,数字就变成了一个只有一个成员的元组。我监督了
range()
error:)好吧,这让我们更公平了。我监督了
range()
error:)我必须注意,尽管@zondo是正确的,而且回答问题更合适,因为提问者没有要求“一行解决方案”,这个答案仍然是做被要求做的事情的最具python风格的方式。我必须注意,尽管@zondo是正确的,并且回答这个问题更合适,因为提问者没有要求“一行解决方案”,但这个答案仍然是做被要求做的事情的最具python风格的方式。
def oddTuples(aTup):
    newlist = []
    for index, element in enumerate(aTup):
        if index % 2 == 1:
            newlist.append(element)
    return tuple(newlist)
aTup[1::2]