Python 3.8生成随机组合文本时如何去除括号?
解决Python随机抽取文本后输出带括号的问题
问题场景
在Linux Ubuntu系统下使用Python 3.8随机生成并组合文本时,输出结果总是带有不美观的括号。原代码使用random.sample抽取元素,尝试列表拼接、f-string输出等方式后,结果仍不符合预期:
原代码:
import random a= ["Dragon", "Tofu" , "Music"] b= ["January", "Tree", "Book"] x = random.sample(a,1) y = random.sample(b,1) c = x + y print(c) print(f' {x} {y}')
输出结果:
['Dragon', 'Tree'] ['Dragon'] ['Tree']
期望得到无括号的纯文本组合,例如:Dragon Tree
问题原因
random.sample(列表, 数量)返回的是包含指定数量元素的列表,哪怕只抽取1个元素,结果也是长度为1的列表,而非单个字符串。打印列表时就会默认显示括号和引号。
解决方案
有两种简单的解决方式:
方法1:提取列表中的单个元素
既然random.sample返回的是列表,直接通过索引[0]取出唯一的元素即可:
import random a= ["Dragon", "Tofu" , "Music"] b= ["January", "Tree", "Book"] x = random.sample(a,1)[0] # 取列表第一个元素 y = random.sample(b,1)[0] print(f'{x} {y}')
方法2:使用random.choice直接获取单个元素
如果只需要从列表中抽取一个元素,更合适的方法是用random.choice,它直接返回列表中的单个元素,无需额外处理列表:
import random a= ["Dragon", "Tofu" , "Music"] b= ["January", "Tree", "Book"] x = random.choice(a) y = random.choice(b) print(f'{x} {y}')
两种方法的输出都会是类似Dragon Tree的纯文本格式,符合预期。
内容的提问来源于stack exchange,提问作者Coffe and Tea
相关产品推荐
相关产品推荐

