Python中如何将多对象组合为单个元素追加至列表?append报错
解决list.append()多参数报错的问题
嘿,我懂你的困扰啦!你遇到的TypeError: append() takes exactly one argument (3 given)错误,原因很直接——Python的list.append()方法只能接收一个参数,你一次性传了三个字符串(牌面、"of"、花色),它自然就懵啦。
要实现你想要的「把三个部分组合成类似"Two of Hearts"的单个元素加到列表末尾」的需求,有几种简单的解决办法:
方法1:用f-string拼接成完整字符串(最推荐)
f-string是Python 3.6+最简洁直观的字符串拼接方式,先把三个部分拼成一个完整的字符串,再传给append():
import random # 别忘了导入random模块,不然randint用不了哦 yourCards = [] cards =["Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"] suits = ["Hearts","Diamonds","Clubs","Spades"] # 拼接成目标格式的字符串,再添加到列表 yourCards.append(f"{cards[random.randint(0,12)]} of {suits[random.randint(0,3)]}")
方法2:用字符串join方法拼接
如果习惯用join,也可以把三个元素放到列表里,再用空格连接起来:
import random yourCards = [] cards =["Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"] suits = ["Hearts","Diamonds","Clubs","Spades"] card_element = ' '.join([cards[random.randint(0,12)], "of", suits[random.randint(0,3)]]) yourCards.append(card_element)
方法3:直接在append里拼接(更紧凑)
要是不想用临时变量,也可以直接在append()的参数里完成拼接:
import random yourCards = [] cards =["Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"] suits = ["Hearts","Diamonds","Clubs","Spades"] yourCards.append(cards[random.randint(0,12)] + " of " + suits[random.randint(0,3)])
这样操作后,yourCards列表末尾就会新增一个类似"Two of Hearts"的完整字符串元素啦~
内容的提问来源于stack exchange,提问作者David Latimer
相关产品推荐
相关产品推荐

