Python魔术翻牌都是每隔一张翻的代码,有没有每隔俩张翻的代码呀?
def solution_list():
pokers = [0 for _ in range(13)] # 初始化
count = len(pokers) # 纸牌总数
index = -1
for num in range(1, 14):
i = 0 # 计数
while i < num:
index = (index + 1) % count # 索引向前一步(可循环)
if pokers[index] == 0: # 当前元素为0时才计数, 不为0则跳过
i += 1
pokers[index] = num
print('#' * 50)
print(f'
牌组: {pokers}
')
print('#' * 50)
>>> class pokers:
def dealtwo(p):
t = []
p = p[:]
while p:
t.append(p.pop(0))
if not p:break
p.append(p.pop(0))
if not p:break
p.append(p.pop(0))
return t
def solution(p):
p = p[:]
t = pokers.dealtwo(p)
for i,n in enumerate(t):
p[n-1]=i+1
return p
>>> pok = [i for i in range(1,14)]
>>> pokers.solution(pok)
[1, 8, 10, 2, 6, 12, 3, 9, 7, 4, 13, 11, 5]
>>>
>>> x = pokers.solution(pok)
>>> pokers.dealtwo(x)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]