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

使用Python random.choices打开随机链接出现TypeError如何解决

问题原因

random.choices() 的参数使用不符合规范:

  • 函数第一个必填参数是存放所有待选元素的序列对象(如列表、元组),你直接将多个链接字符串作为独立位置参数传入,导致第二个字符串被函数识别为第二个参数weights(权重参数,要求输入数值类型序列)
  • 函数内部计算总权重时会对权重值做数值运算,传入的字符串无法和浮点数0.0做计算,触发对应的TypeError。另外你参考的写法本身存在错误:既没有将链接放到统一的序列中,也缺少右括号。
解决方案

根据你的使用场景,有两种可行写法:

场景1:等概率随机选取1个链接(最常用)

推荐直接使用random.choice()(专门用于单个随机选取,语法更简洁):

import random
import webbrowser

# 先将所有待选链接存入列表
link_list = [
    "https://www.youtube.com/watch?v=YGf8JJZM_Yg",
    "https://www.youtube.com/watch?v=upsF9NULamA"
]
# 随机选取1个链接打开
webbrowser.open(random.choice(link_list))

场景2:需要使用random.choices()(比如要加权选、要选多个)

random.choices()默认返回列表,需要取索引为0的元素作为打开地址:

# 等概率选1个
webbrowser.open(random.choices(link_list, k=1)[0])

# 加权选1个示例:两个链接选中概率分别为30%、70%
webbrowser.open(random.choices(link_list, weights=[0.3, 0.7], k=1)[0])

内容的提问来源于stack exchange,提问作者Ashutosh Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:06:02