我试图对“卡片技巧”进行编程' GCSE计算机科学的实践课程,但我坚持一个功能。
我有一个包含3个其他数组的数组,我想把3个数组中的项目移到另一个数组中。
这是我的代码,我不确定它为什么不起作用:
def remake_list(old_piles,mid_pile) :
print(old_piles)
newlist = []
if mid_pile == 1 :
newlist.extend(old_piles[1])
newlist.extend(old_piles[0])
newlist.extend(old_piles[2])
if mid_pile == 2 :
newlist.extend(old_piles[0])
newlist.extend(old_piles[1])
newlist.extend(old_piles[2])
if mid_pile == 3 :
newlist.extend(old_piles[0])
newlist.extend(old_piles[2])
newlist.extend(old_piles[1])
return newlist
如果old_piles是:
[['S8', 'S6', 'H3', 'DK', 'D8', 'C8', 'D2'], ['SQ', ',H2', 'S2', 'S4', 'D7', 'CK', 'SJ'], ['CA', 'D3', 'DQ', 'DJ', 'C9', 'H10', 'S7']]
mid_pile是3,我怎么能让它工作?
答案 0 :(得分:1)
使用itertools.chain
import itertools
deck = [['S8', 'S6', 'H3', 'DK', 'D8', 'C8', 'D2'], ['SQ', ',H2', 'S2', 'S4', 'D7', 'CK', 'SJ'], ['CA', 'D3', 'DQ', 'DJ', 'C9', 'H10', 'S7']]
print(list(itertools.chain(*deck)))
>> ['S8', 'S6', 'H3', 'DK', 'D8', 'C8', 'D2', 'SQ', ',H2', 'S2', 'S4', 'D7', 'CK', 'SJ', 'CA', 'D3', 'DQ', 'DJ', 'C9', 'H10', 'S7']
答案 1 :(得分:1)
您可以使用列表添加:
def remake_list(old_piles,mid_pile) :
print(old_piles)
newlist = []
if mid_pile == 1 :
newlist = old_piles[1] + old_piles[0] + old_piles[2]
if mid_pile == 2 :
newlist = old_piles[0] + old_piles[1] + old_piles[2]
if mid_pile == 3 :
newlist = old_piles[0] + old_piles[2] + old_piles[1]
return newlist