[問題]新手觀念_撲克牌題目

看板Python作者 (琳)時間4年前 (2019/09/18 12:23), 編輯推噓5(5011)
留言16則, 9人參與, 4年前最新討論串1/1
各位前輩好,有個經典的題目是製造一副撲克牌,看別人的分享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://www.ptt.cc/bbs/Python/M.1568780604.A.29F.html

09/18 13:48, 4年前 , 1F
不能append 一個list。或可試試 extend。
09/18 13:48, 1F

09/18 14:25, 4年前 , 2F
最後的poker=[]是要清空,不然之後append進去會重複加
09/18 14:25, 2F

09/18 14:25, 4年前 , 3F
到之前的牌
09/18 14:25, 3F

09/18 14:54, 4年前 , 4F
可以 是說跑過不就知道了= =
09/18 14:54, 4F

09/18 15:30, 4年前 , 5F
謝謝前輩們的回答,回覆s大,兩個跑出來的結果一樣,只是
09/18 15:30, 5F

09/18 15:30, 4年前 , 6F
擔心自己會不會漏掉什麼細節才認為兩個答案一樣。
09/18 15:30, 6F

09/18 22:55, 4年前 , 7F
有點冗長的code 也許可以寫成 pokers.append([i, j])
09/18 22:55, 7F

09/18 22:55, 4年前 , 8F
但也許作者想強調清空list
09/18 22:55, 8F

09/19 00:46, 4年前 , 9F
好的,謝謝T大
09/19 00:46, 9F

09/19 08:57, 4年前 , 10F
宣告一個卡片class 屬性有花色跟點數 我覺得會比較簡潔
09/19 08:57, 10F

09/19 08:57, 4年前 , 11F
跟易讀
09/19 08:57, 11F

09/19 14:55, 4年前 , 12F
可以試試 [[i, j] for i in 花色list for j in 數字list]
09/19 14:55, 12F

09/21 00:54, 4年前 , 13F

09/21 00:54, 4年前 , 14F
ster/01-data-model/frenchdeck.py
09/21 00:54, 14F

09/27 08:35, 4年前 , 15F
很適合用list comprehension的情境,不過可能還沒講到才
09/27 08:35, 15F

09/27 08:35, 4年前 , 16F
會這樣寫
09/27 08:35, 16F
文章代碼(AID): #1TWR4yAV (Python)