如何解决如何通过实际混洗所有元素来混洗列表列表?
import random
row = ['\u2665','\u2663','\u2666','\u2660'] # ["Hearts","Clubs","Diamonds","Spades"]
symbol = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
level = input('Choose Difficulty level: Easy (1),Medium (2),Hard (3): ')
while level!="1" and level!="2" and level!="3":
level = (input('Choose Difficulty level: Easy (1),Hard (3): '))
if level == "1":
col=4
elif level== "2":
col=10
else:
col=1
def value(symbol):
if symbol=="A":
return 1
elif symbol=="Q" or symbol=="J" or symbol=="K":
return 10
else:
return int(symbol)
deck =[]
for i in range(len(row)):
deck.append([])
for j in range(col):
card = [symbol[j],row[i],value(symbol[j]),str(symbol[j])+str(row[i]),False]
deck.append(card)
但是函数 shuffle.random(deck)
只洗牌了 4 行...
我想创建一个只有卡片的新列表并对其进行洗牌,但后来我不知道如何将其设为 4 行 4 或 10 或 13 列的列表。
任何想法和建议都是有价值的!
解决方法
使用random.shuffle(inp)
创建一个递归函数:如果 input
是 list
洗牌它,否则,离开它
由于列表是可变的,所以一切都在原地
无论您的列表如何嵌套,一切都会被打乱
import random
inp_list = [1,[2,3,4,[5,6,7],8,9],[10,11]]
def shuffle_list(inp):
if type(inp) is list:
random.shuffle(inp)
for i in inp:
shuffle_list(i)
shuffle_list(inp_list)
print(inp_list)
[1,[11,10],[8,[7,5,6],9,2,4]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。