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

作者: 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