Cutting a deck of cards

Giorgos Tzampanakis giorgos.tzampanakis at gmail.com
Sat Jun 1 10:58:55 EDT 2013


On 2013-05-26, RVic wrote:

> Suppose I have a deck of cards, and I shuffle them
>
> import random
> cards = []
> decks = 6
> cards = list(range(13 * 4 * decks))
> random.shuffle(cards)
>
> So now I have an array of cards. I would like to cut these cards at some
> random point (between 1 and 13 * 4 * decks - 1, moving the lower half of
> that to the top half of the cards array.
>
> For some reason, I can't see how this can be done (I know that it must
> be a simple line or two in Python, but I am really stuck here). Anyone
> have any direction they can give me on this? Thanks, RVic, python newbie
>

The slice notation should be your friend here:

random.shuffle(cards)
cut_point = random.choice(xrange(len(cards)))
cards = cards[cut_point :] + cards[: cut_point]

-- 
Real (i.e. statistical) tennis and snooker player rankings and ratings:
http://www.statsfair.com/ 



More information about the Python-list mailing list