[问题]新手观念_扑克牌题目

楼主: lh1122 (琳)   2019-09-18 12:23:22
各位前辈好,有个经典的题目是制造一副扑克牌,看别人的分享code如下:
import random
import operator
def auto():
pokers=[]
poker=[]
for i in ['♥','♠','♦','♣']:
for j in ['A','2','3','4','5','6','7','8','9','10','J','Q','K']:
poker.append(i)
poker.append(j)
pokers.append(poker)
poker=[]
return pokers
在append的部分,想问poker=[]代表的意思?(只理解第一个poker=[]是宣告一个list)
另外,若只有宣告poker,并直接改成poker.append([i,j])是否可以达到同样目的?
以上问题要麻烦前辈解惑了,谢谢。
作者: HotDesert (热啊!)   2019-09-18 13:48:00
不能append 一个list。或可试试 extend。
作者: energyaxd (君)   2019-09-18 14:25:00
最后的poker=[]是要清空,不然之后append进去会重复加到之前的牌
作者: sherees (ShaunTheSheep)   2019-09-18 14:54:00
可以 是说跑过不就知道了= =
楼主: lh1122 (琳)   2019-09-18 15:30:00
谢谢前辈们的回答,回复s大,两个跑出来的结果一样,只是担心自己会不会漏掉什么细节才认为两个答案一样。
作者: TitanEric (泰坦)   2019-09-18 22:55:00
有点冗长的code 也许可以写成 pokers.append([i, j])但也许作者想强调清空list
楼主: lh1122 (琳)   2019-09-19 00:46:00
好的,谢谢T大
作者: vi000246 (Vi)   2019-09-19 08:57:00
宣告一个卡片class 属性有花色跟点数 我觉得会比较简洁跟易读
作者: ZongXiu   2019-09-19 14:55:00
可以试试 [[i, j] for i in 花色list for j in 数字list]
作者: ssivart   2019-09-21 00:54:00
作者: mantour (朱子)   2019-09-27 08:35:00
很适合用list comprehension的情境,不过可能还没讲到才会这样写

Links booklink

Contact Us: admin [ a t ] ucptt.com