Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I do cross multiplication with strings in Python?

I have two lists of strings which are:

Deck13Sample = [
    'Two', 'Three', 'Four', 'Five', 'Six', 'Seven',
    'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace'
]
CardTypes = [' of Hearts', ' of Spades', ' of Diamonds', ' of Clubs']

I want to multiply the lists, to get a complete deck which would look like

Deck52Sample = ['Two of Hearts', 'Three of Hearts', 'Four of Hearts', ...]

Since Python can not cross-multiply strings built-in, I am totally clueless of what I should do now.

like image 299
Yekta Aktaş Avatar asked Sep 05 '25 16:09

Yekta Aktaş


1 Answers

Use itertools.product

>>> from itertools import product as pd

>>> Deck13Sample = ['Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Jack','Queen','King','Ace']
>>> CardTypes = [' of Hearts',' of Spades',' of Diamonds',' of Clubs']

>>> [ i+j for i, j in pd(Deck13Sample, CardTypes)]
['Two of Hearts', 'Two of Spades', 'Two of Diamonds', 'Two of Clubs', 'Three of Hearts', 'Three of Spades', 'Three of Diamonds', 'Three of Clubs', 'Four of Hearts', 'Four of Spades', 'Four of Diamonds', 'Four of Clubs', 'Five of Hearts', 'Five of Spades', 'Five of Diamonds', 'Five of Clubs', 'Six of Hearts', 'Six of Spades', 'Six of Diamonds', 'Six of Clubs', 'Seven of Hearts', 'Seven of Spades', 'Seven of Diamonds', 'Seven of Clubs', 'Eight of Hearts', 'Eight of Spades', 'Eight of Diamonds', 'Eight of Clubs', 'Nine of Hearts', 'Nine of Spades', 'Nine of Diamonds', 'Nine of Clubs', 'Ten of Hearts', 'Ten of Spades', 'Ten of Diamonds', 'Ten of Clubs', 'Jack of Hearts', 'Jack of Spades', 'Jack of Diamonds', 'Jack of Clubs', 'Queen of Hearts', 'Queen of Spades', 'Queen of Diamonds', 'Queen of Clubs', 'King of Hearts', 'King of Spades', 'King of Diamonds', 'King of Clubs', 'Ace of Hearts', 'Ace of Spades', 'Ace of Diamonds', 'Ace of Clubs']
like image 143
Vicrobot Avatar answered Sep 08 '25 06:09

Vicrobot