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

使用for循环和random choice重排列表时元素拆分问题求助

问题分析与解决

你的代码存在两个关键问题:

  1. 列表+=操作的行为误解:当执行b += random.choice(a)时,random.choice(a)返回的是单个字符串(比如sai),而+=会将字符串视为可迭代对象,把它拆分成单个字符逐个添加到列表b中,这就是结果是单个字符列表的原因。
  2. 方法名大小写错误:random.Choice是错误写法,Python标准库中该方法是小写的random.choice(大写写法会直接报错,推测你实际运行时可能修正了这个笔误,但代码里的错误需要纠正)。

修正后的代码

第一种写法(推荐用append直接添加元素):

import random
a = ['sai','raju','phani'] 
b = []
for _ in a:
     b.append(random.choice(a)) 
print(b)

第二种写法(用+=但包装成列表):

import random
a = ['sai','raju','phani'] 
b = []
for _ in a:
     b += [random.choice(a)] 
print(b)

两种写法都会输出类似['sai','sai','raju']的完整字符串列表,符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:45:32