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

Python二十一点模拟器开发:如何避免列表嵌套问题

解决二十一点模拟器补牌列表嵌套问题

问题出在random.sample(kortlek,1)的返回值上——这个函数会返回一个包含1个元素的列表,直接用append添加的话,自然会把这个小列表嵌套进手牌列表里,导致出现[5, 10, [13]]这种结构。

有两种简单的解决办法:

  • 改用random.choice()函数:它直接返回列表中的单个随机元素,而非列表。修改后的代码:

    if svar == "JA":
        handspelare.append(random.choice(kortlek))
        print(handspelare)
    

    这样添加后手牌列表会是[5, 10, 13]的扁平结构,直接用sum(handspelare)就能求和。

  • 保留random.sample()但取列表第一个元素:如果一定要用sample(比如后续有批量抽牌的需求),可以通过索引取出返回列表里的元素再添加:

    if svar == "JA":
        handspelare.append(random.sample(kortlek,1)[0])
        print(handspelare)
    

    这种写法也能避免嵌套,效果和第一种方法一致。

另外可以检查下初始抽两张牌的代码,如果是用random.sample(kortlek,2)是没问题的,因为它返回的是包含两个元素的扁平列表,直接赋值给handspelare就能得到正常的初始手牌。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:50:24