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

Python向已有列表添加元素异常:二十一点游戏抽卡问题排查

解决二十一点抽牌时添加嵌套列表的问题

问题核心在于random.choices()的返回值特性:不管参数k设置为多少,它都会返回一个列表。哪怕k=1,返回的也是[x]这样的单元素列表,直接用append()就会把手牌列表变成嵌套结构,比如[6, 3, [x]],自然没法正常计算手牌总和。

给你两种可行的解决办法:

  • 改用random.choice()函数(注意没有末尾的s),这个函数专门用于抽取单个随机元素,直接返回数值类型:

    players_card.append(random.choice(cards))
    
  • 如果坚持要用random.choices(),可以取返回列表的第一个元素(索引为0)来添加:

    players_card.append(random.choices(cards, k=1)[0])
    

另外补充一点:初始发两张牌时用random.choices(cards, k=2)是合理的,因为你需要直接得到包含两张牌的列表;但抽单张牌的场景下,random.choice()更贴合需求,代码也更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:39:52