我目前正在尝试为一个英国GCSE计算作业创建一张Python3.3版本的卡片,我想知道我是否可以在列表中使用列表理解来创建卡片的面值。你知道吗
我的结果列表需要如下所示:['Ace','2', '3', '4', '5', '6', '7', '8', '9', '10','Jack','Queen','King']
-
我已经尝试了所有可能的方法,试图让代码在一行上运行。
我的一些尝试如下:
>>> ['Ace', [str(i) for i in range(2,11)] , 'Jack', 'Queen', 'King']
['Ace',['2', '3', '4', '5', '6', '7', '8', '9', '10'],'Jack','Queen','King']
-
>>> ['Ace', (str(i) for i in range(2,11)), 'Jack', 'Queen', 'King']
['Ace', <generator object <genexpr> at 0x02BD1260>, 'Jack', 'Queen', 'King']
-
我之所以要使用列表理解是为了获得编码知识的分数。我知道我可以像在问题开始时那样把数字输入列表,但这一个额外的分数对我来说是一件大事。你知道吗
如果我把它赋给一个变量,然后使用下面这样的for
循环将数字插入faces
列表,我就可以理解列表了,但是我真的,真的,真的希望代码都放在一行上,因为这也能让我在代码效率上获得额外的分数。你知道吗
>>>faces = ['ace', 'jack', 'queen', 'king']
>>>numbers = [i for i in range(2,11)]
>>>for x in numbers:
... faces.insert(x-1,x)
这里有一种不同的方法,使用
dict.get
:使用列表串联:
另一种选择是使用^{} :
相关问题 更多 >
编程相关推荐