在特定数量(8)的元素之后添加新行并显示弹出的项目

问题描述 投票:0回答:1
def make_deck():

    deck = []
    suits = []
    cards = []
    popped = []

    suits = 'CDHS'
    cards = 'A23456789TJQK'

    for i in cards:
        for j in suits:
            deck.append (i+j)

    random.shuffle(deck)

    for card in range(5):
        deck.pop(-1)                 ### I am popping 5 cards from 
                                     the deck. How to display which 
                                     cards
    final = ' '. join(deck)

    final2 = print ('\t'.join(deck))
    return final2

这给了我以下一行。我想要每行8个,如下所示。我试过用

for i in range(8):
        print ('\n'.join(deck))

这不起作用。请帮忙。

QC  7D  JC  4H  KH  8C  TC  9C .  
QD  4D  5S  QS  6C  5H  3D  6H  
6D  AH  2S  4C  7C  JD  TS  JS  
TD  3C  JH  KC  7S  8D  2C  9H  
3S  KS  AS  KD  AD  8H  9S  5C  
3H  9D  4S  6S  TH  8S  2D
python python-3.x list
1个回答
0
投票

这是一个涉及分块的解决方案:

import random

def chunks(l, n):
    """Yield successive n-sized chunks from l."""
    for i in range(0, len(l), n):
        yield l[i:i + n]

def make_deck():

    deck = []
    suits = []
    cards = []
    popped = []

    suits = 'CDHS'
    cards = 'A23456789TJQK'

    for i in cards:
        for j in suits:
            deck.append (i+j)

    random.shuffle(deck)

    for card in range(5):
        deck.pop(-1)

    for l in chunks(deck, 8):
        print(' '.join(l))

    return None
© www.soinside.com 2019 - 2024. All rights reserved.