作者lh1122 (琳)
看板Python
标题[问题]新手观念_扑克牌题目
时间Wed Sep 18 12:23:22 2019
各位前辈好,有个经典的题目是制造一副扑克牌,看别人的分享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])是否可以达到同样目的?
以上问题要麻烦前辈解惑了,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.47.106 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1568780604.A.29F.html
1F:→ HotDesert: 不能append 一个list。或可试试 extend。 09/18 13:48
2F:推 energyaxd: 最後的poker=[]是要清空,不然之後append进去会重复加 09/18 14:25
3F:→ energyaxd: 到之前的牌 09/18 14:25
4F:推 sherees: 可以 是说跑过不就知道了= = 09/18 14:54
5F:→ lh1122: 谢谢前辈们的回答,回覆s大,两个跑出来的结果一样,只是 09/18 15:30
6F:→ lh1122: 担心自己会不会漏掉什麽细节才认为两个答案一样。 09/18 15:30
7F:推 TitanEric: 有点冗长的code 也许可以写成 pokers.append([i, j]) 09/18 22:55
8F:→ TitanEric: 但也许作者想强调清空list 09/18 22:55
9F:→ lh1122: 好的,谢谢T大 09/19 00:46
10F:→ vi000246: 宣告一个卡片class 属性有花色跟点数 我觉得会比较简洁 09/19 08:57
11F:→ vi000246: 跟易读 09/19 08:57
12F:→ ZongXiu: 可以试试 [[i, j] for i in 花色list for j in 数字list] 09/19 14:55
14F:→ ssivart: ster/01-data-model/frenchdeck.py 09/21 00:54
15F:推 mantour: 很适合用list comprehension的情境,不过可能还没讲到才 09/27 08:35
16F:→ mantour: 会这样写 09/27 08:35