Python 从元组中选择一个随机数+一些数字

Python 从元组中选择一个随机数+一些数字,python,random,tuples,Python,Random,Tuples,我有一个数字的元组,我想从元组中选择一个随机数和一个特定的数字。例如: my_tuple = (1,2,3) 我有数字4。我想从数字1,2,3,4中选择一个随机数,当然不改变元组 我试过: my_tp = (1, 2, 3) a = random.choice(list(my_tp).append(4)) print(a) 我是python新手。我尝试将元组转换为列表,然后执行随机函数。 上面的代码不起作用。找到错误了吗 “NoneType”类型的对象没有len 需要帮助。方法list.ap

我有一个数字的元组,我想从元组中选择一个随机数和一个特定的数字。例如:

my_tuple = (1,2,3)
我有数字4。我想从数字1,2,3,4中选择一个随机数,当然不改变元组

我试过:

my_tp = (1, 2, 3)
a = random.choice(list(my_tp).append(4))
print(a)
我是python新手。我尝试将元组转换为列表,然后执行随机函数。 上面的代码不起作用。找到错误了吗

“NoneType”类型的对象没有len

需要帮助。

方法list.append更改提供的列表并返回None,这解释了您遇到的异常。要获得所需的结果,可以隐式使用tuple.\uuuu add\uuu方法,该方法将返回一个新的tuple

values = (1, 2, 3)
random.choice(values + (4,))
如果您想以简洁的方式删除值,使用集合可能是合适的

values = {1, 2, 3}
random.choice(list(values - {3}))
方法list.append更改提供的列表并返回None,这解释了您遇到的异常。要获得所需的结果,可以隐式使用tuple.\uuuu add\uuu方法,该方法将返回一个新的tuple

values = (1, 2, 3)
random.choice(values + (4,))
如果您想以简洁的方式删除值,使用集合可能是合适的

values = {1, 2, 3}
random.choice(list(values - {3}))
您可以尝试:

my_tuple = (1,2,3)
random.choice((*my_tuple, 4))
其中*my_tuple,4使用my_tuple和4的未打包内容创建一个新的tuple。

您可以尝试:

my_tuple = (1,2,3)
random.choice((*my_tuple, 4))
其中*my_tuple,4使用my_tuple和4的未打包内容创建一个新的tuple。

list.append返回none 一旦像您所做的那样转换为列表,追加将修改该列表,但不会返回任何结果,因此这就是错误的来源

若要了解这一点,您可以将元组转换为列表,然后向其追加4,然后使用random.choice,或者只需一步,就可以将[4]的列表与+操作数连接起来

这种方法简单得多:

import random

my_tuple = (1,2,3)
random.choice(list(my_tuple) + [4])
希望这有助于解决一些问题!:

更新:

如果只想从元组中随机选择,而不选择最后一项,则只需使用正常语法对列表进行切片:

random.choice(list(my_tuple)[:-1])
list.append返回none 一旦像您所做的那样转换为列表,追加将修改该列表,但不会返回任何结果,因此这就是错误的来源

若要了解这一点,您可以将元组转换为列表,然后向其追加4,然后使用random.choice,或者只需一步,就可以将[4]的列表与+操作数连接起来

这种方法简单得多:

import random

my_tuple = (1,2,3)
random.choice(list(my_tuple) + [4])
希望这有助于解决一些问题!:

更新:

如果只想从元组中随机选择,而不选择最后一项,则只需使用正常语法对列表进行切片:

random.choice(list(my_tuple)[:-1])

值得注意的是,解包语法是在2015年9月引入的。不完全是我所说的新语法。可能值得注意的是,解包语法是在2015年9月引入的。不完全是我所说的新的。谢谢。如果我想做减法?一个简单的“-”不行it@sheldonzy设置了唯一允许以这种方式进行减法的内置函数。我添加了一个显示此用法的选项。谢谢。如果我想做减法?一个简单的“-”不行it@sheldonzy设置了唯一允许以这种方式进行减法的内置函数。我添加了一个显示此用法的选项。谢谢。如果我想做减法?一个简单的“-”不行你什么意思?这里您没有使用加法,而是+连接列表。是的。如果元组是1,2,3,我想减去数字3,然后从1,2中的随机数中进行选择,然后使用listmy_tuple[:-1]:将其切片到最后一个值,谢谢。如果我想做减法?一个简单的“-”不行你什么意思?这里您没有使用加法,而是+连接列表。是的。如果元组是1,2,3,我想减去数字3,然后从1,2中的随机数中进行选择,然后使用listmy_tuple[:-1]切片到最后一个值: