Define a function shuffle that takes a sequence with an even number of elements (cards) and creates a new list that interleaves the elements of the first half with the elements of the second half. Let's better understand what it means to shuffle a list in this way. Let's say there is some list [1, 2, 3, 4, 5, 6, 7, 8]. interleave the first half [1, 2, 3, 4] with the second half [5, 6, 7, 8] means that your final list should contain the first element from the first half, then the first element from the second half, then the second element of the first half, then the second element of the second half and so on. So the interleaved version of [1, 2, 3, 4, 5, 6, 7, 8] would be [1, 5, 2, 6, 3, 7, 4, 8]. def card (n):

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
Define a function shuffle that takes a sequence with an even number of elements (cards) and creates a new list that
interleaves the elements of the first half with the elements of the second half.
Let's better understand what it means to shuffle a list in this way. Let's say there is some list [1, 2, 3, 4, 5, 6, 7, 8]. To
interleave the first half [1, 2, 3, 4] with the second half [5, 6, 7, 8] means that your final list should contain the first
element from the first half, then the first element from the second half, then the second element of the first half, then the
second element of the second half and so on.
So the interleaved version of [1, 2, 3, 4, 5, 6, 7, 8] would be [1, 5, 2, 6, 3, 7, 4, 8].
def card (n):
"""Return the playing card numeral as a string for a positive n <= 13."""
assert type(n) == int and n > 0 and n <= 13, "Bad card n"
specials = {1: 'A', 11: 'J', 12: 'Q', 13: 'K'}
return specials.get(n, str(n))
def shuffle (cards):
"""Return a shuffled list that interleaves the two halves of cards.
>>> shuffle (range(6))
[0, 3, 1, 4, 2, 5]
>>> suits = ['H', 'D', 'S', 'C']
>>> cards = [card (n) + suit for n in range (1,14) for suit in suits]
>>> cards [:12]
['AH', 'AD', 'AS', 'AC', '2H', '2D', '25', '2C', '3H', '3D', '3S', '3C']
>>> cards [26:30]
['7S', '7C', '8H', '8D']
>>> shuffle (cards) [:12]
['AH', '7S', 'AD', '7C', 'AS', '8H', 'AC', '8D', '2H', '8S', '2D', '8C']
>>> shuffle (shuffle (cards)) [:12]
['AH', '4D', '75', '10C', 'AD', '4S', '7C', 'JH', 'AS', '4C', '8H', 'JD']
>>> cards [:12] # Should not be changed
['AH', 'AD', 'AS', 'AC', '2H', '2D', '25', '2C', '3H', '3D', '3S', '30']
|| || ||
assert len(cards) % 2 == 0, 'len(cards) must be even'
"*** YOUR CODE HERE ***"
Transcribed Image Text:Define a function shuffle that takes a sequence with an even number of elements (cards) and creates a new list that interleaves the elements of the first half with the elements of the second half. Let's better understand what it means to shuffle a list in this way. Let's say there is some list [1, 2, 3, 4, 5, 6, 7, 8]. To interleave the first half [1, 2, 3, 4] with the second half [5, 6, 7, 8] means that your final list should contain the first element from the first half, then the first element from the second half, then the second element of the first half, then the second element of the second half and so on. So the interleaved version of [1, 2, 3, 4, 5, 6, 7, 8] would be [1, 5, 2, 6, 3, 7, 4, 8]. def card (n): """Return the playing card numeral as a string for a positive n <= 13.""" assert type(n) == int and n > 0 and n <= 13, "Bad card n" specials = {1: 'A', 11: 'J', 12: 'Q', 13: 'K'} return specials.get(n, str(n)) def shuffle (cards): """Return a shuffled list that interleaves the two halves of cards. >>> shuffle (range(6)) [0, 3, 1, 4, 2, 5] >>> suits = ['H', 'D', 'S', 'C'] >>> cards = [card (n) + suit for n in range (1,14) for suit in suits] >>> cards [:12] ['AH', 'AD', 'AS', 'AC', '2H', '2D', '25', '2C', '3H', '3D', '3S', '3C'] >>> cards [26:30] ['7S', '7C', '8H', '8D'] >>> shuffle (cards) [:12] ['AH', '7S', 'AD', '7C', 'AS', '8H', 'AC', '8D', '2H', '8S', '2D', '8C'] >>> shuffle (shuffle (cards)) [:12] ['AH', '4D', '75', '10C', 'AD', '4S', '7C', 'JH', 'AS', '4C', '8H', 'JD'] >>> cards [:12] # Should not be changed ['AH', 'AD', 'AS', 'AC', '2H', '2D', '25', '2C', '3H', '3D', '3S', '30'] || || || assert len(cards) % 2 == 0, 'len(cards) must be even' "*** YOUR CODE HERE ***"
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Linked List Representation
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education