我想创建两个元素的列表(名为“card”):“NUMBER”和列表“numbers”中的一个数字。在“数字”列表中有多少张牌就有多少张牌。 为什么我要用那个密码得到相同号码的卡片?你知道吗
card=['NUMBER','']
numbers = [1,3,5]
All_cards=[]
for i in range(len(numbers)):
All_cards.append(card)
All_cards[i][1]=numbers[i]
print(All_cards)
我得到的是:[['NUMBER',5],['NUMBER',5],['NUMBER',5]]
我想要的是:[NUMBER',1],['NUMBER',3],['NUMBER',5]]
如果您添加一个print语句作为for循环的最后一行,您就会知道发生了什么。你知道吗
具体如下:
它基本上覆盖了这个值。你知道吗
您可以如下所示修改代码以获得预期的输出:
输出:
您可以通过简单的列表理解:
你已经有了很好的答案来解决你眼前的问题(我建议你试着去理解Roseman先生的答案中所介绍的列表理解的机制,因为它在太多的情况下非常方便),但是也许你想理解为什么你会有这样奇怪的结果。你知道吗
你得到了一个奇怪的结果,因为你可以改变列表的内容。。你知道吗
嗯?当你在翻译的提示下打字时,跟我来
你正在创建一个列表,如果你做了一个作业,它会立即丢失(不确切,但是)
您已经创建了一个列表(rhs of
=
),并为此列表分配了一个名称(card
,lhs of=
)。你知道吗现在使用
for
循环All_cards.append(card)
并不意味着你要在列表后面加上一个副本,而是在同一个列表后面加上(三次)。你知道吗All_cards[i][1]=numbers[i]
意味着您在循环的所有三个过程中修改同一个列表。你知道吗print(All_cards)
看到所有三个元素都是相同的,并且内部列表的第二个元素是您在循环中使用的最后一个数值。。。你知道吗我可以补充一点,这是每个Python程序员的成年礼吗?一路顺风
相关问题 更多 >
编程相关推荐