You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将random.choices()返回值转为int?板球游戏开发报错求助

解决random.choices()返回列表导致的TypeError问题

嘿,这个问题我之前也碰到过!先给你理清楚原因:

random.choices()函数的返回值是列表类型,哪怕你只选一个元素,它也会返回类似[1]这样的列表,而不是单个整数。所以当你尝试把这个列表和玩家分数(int类型)相加时,Python就会抛出TypeError,因为它不知道怎么把列表和整数相加。

给你两个简单的解决方案:

方案1:提取列表的第一个元素(适配权重场景)

既然choices返回的是包含单个元素的列表,直接取索引[0]就能拿到你需要的整数,完美适配你需要权重的板球游戏场景:

import random
a_list = [1,2]
dist = [0.9,0.1]
random_number = random.choices(a_list, dist)[0]  # 取列表第一个元素
print(random_number)  # 现在输出是int类型,比如1或2
# 之后就可以正常和分数相加了
player_score = 10
player_score += random_number

方案2:改用random.choice()(无权重场景)

如果你不需要设置权重(也就是每个元素被选中的概率相同),可以直接用random.choice(),它会直接返回单个元素,不用处理列表:

import random
a_list = [1,2]
random_number = random.choice(a_list)  # 直接返回int
print(random_number)

不过要注意,random.choice()不支持权重参数,所以如果你需要保留dist这个权重设置,方案1是更适合你的选择。

内容的提问来源于stack exchange,提问作者Python3-Pyro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:32:26