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

Python代码生成列表内容错误,返回长度4而非预期长度2

问题根因

代码中对列表使用+=操作时,会自动遍历等号右侧的可迭代对象,将其中的元素逐个追加到列表中,而不是把右侧对象整体作为单个元素存入。
random.choice(cards_list_func)每次返回的是choice_list里长度为2的元组(比如(8, 'Eight')),用+=追加时,元组本身是可迭代对象,会被拆成两个独立元素存入列表。循环执行2次后,最终就会得到长度为4的扁平列表,和预期结果不符。

修复方案

把循环里的+=操作替换为列表的append()方法即可,append()会把传入的参数整体作为单个元素追加到列表末尾,不会拆解元组结构。
修复后的完整代码:

import random
choice_list =[(2, 'Two'), (8, 'Eight'), (3, 'Three'), (7, 'Seven')]
def dealer(cards_list_func):
    initial_cards = []
    for item in range(2):
        initial_cards.append(random.choice(cards_list_func))
    return initial_cards

new_list = dealer(choice_list)

运行上述代码,返回的new_list就是长度为2、元素为元组的列表,符合预期,示例输出为[(8, 'Eight'), (7, 'Seven')]。

补充:如果一定要用+=写法,可以把每次随机选中的元组包裹在一个单元素列表里,写成initial_cards += [random.choice(cards_list_func)],但这种写法可读性不如append(),日常开发更推荐用append()实现单元素追加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:09:24