如何在一行代码中 "push" 一个元组?

How to "push" a tuple in one line of code?

为什么我不能替换下面的第一个代码:

def conversion7(x,k):
    l=list(x)
    l.append(k)
    return tuple(l)

t=(1,2,3,4)
print(conversion7(t,7))

与第二个:

def conversion7(x,k):
    return tuple(list(x).append(k))

t=(1,2,3,4)
print(conversion7(t,7))

第一个代码有效。这是第二个代码的编译器输出:

Traceback (most recent call last):
  File "<string>", line 5, in <module>
File "<string>", line 2, in conversion7
TypeError: 'NoneType' object is not iterable
> 

代码的目的是通过将元组转换为列表来推送元组,推送列表然后将其转换回元组。

由于 append 没有 return 对列表的引用,正如 chepner 指出的那样,您可以执行以下操作:

def conversion7(x,k):
    return tuple(list(x) + [k])

或者跳过列表转换并立即添加元组:

def conversion7(x,k):
    return x + (k,)