=============================== RESTART: Shell ===============================
>>> import csv_normal as csv
>>> import random
>>> from collections import Counter
>>>
>>> c = csv.csv([[f'{suit}{i}' for i in range(1,14)] for suit in ('♠','♥','♦','♣')])
>>> c = c.resub_field(r'(\D)1$', r'\1A')
>>> c = c.resub_field(r'(\D)11$', r'\1J')
>>> c = c.resub_field(r'(\D)12$', r'\1Q')
>>> c = c.resub_field(r'(\D)13$', r'\1K')
>>> c.print()
♠A, ♠2, ♠3, ♠4, ♠5, ♠6, ♠7, ♠8, ♠9, ♠10, ♠J, ♠Q, ♠K
♥A, ♥2, ♥3, ♥4, ♥5, ♥6, ♥7, ♥8, ♥9, ♥10, ♥J, ♥Q, ♥K
♦A, ♦2, ♦3, ♦4, ♦5, ♦6, ♦7, ♦8, ♦9, ♦10, ♦J, ♦Q, ♦K
♣A, ♣2, ♣3, ♣4, ♣5, ♣6, ♣7, ♣8, ♣9, ♣10, ♣J, ♣Q, ♣K
>>> trump = [j for i in c.csv for j in i] #2次元リストを1次元リストに変換
>>> trump += ['JO','JO'] #ジョーカー追加
>>> random.shuffle(trump)
>>> c = csv.csv([trump[i:i+13] for i in range(len(trump))[::13]]) #1次元リストを2次元リストに変換してcsv化
>>> c.print()
♣Q , JO, ♦3 , ♣2, ♠6 , ♦6, ♠8, ♥2, ♦A, ♠Q, ♣3, ♦K, ♦8
♠10, ♣6, ♥3 , ♥K, ♥10, ♣K, ♦5, ♠K, ♥8, ♠A, ♥4, ♥A, ♠4
♣10, ♠3, ♦10, ♠9, ♣5 , ♦J, ♦Q, ♣A, JO, ♥Q, ♥6, ♦4, ♠5
♦7 , ♥9, ♦2 , ♣8, ♣7 , ♠7, ♥J, ♠J, ♣J, ♠2, ♣9, ♥5, ♥7
♦9 , ♣4
>>> trump = [j for i in c.csv for j in i] #2次元リストを1次元リストに変換
>>> player1, trump = trump[:5], trump[5:] #player1に5枚配る
>>> c = csv.csv([trump[i:i+13] for i in range(len(trump))[::13]]) #1次元リストを2次元リストに変換してcsv化
>>> c.print()
♦6, ♠8, ♥2, ♦A, ♠Q, ♣3, ♦K, ♦8, ♠10, ♣6, ♥3 , ♥K, ♥10
♣K, ♦5, ♠K, ♥8, ♠A, ♥4, ♥A, ♠4, ♣10, ♠3, ♦10, ♠9, ♣5
♦J, ♦Q, ♣A, JO, ♥Q, ♥6, ♦4, ♠5, ♦7 , ♥9, ♦2 , ♣8, ♣7
♠7, ♥J, ♠J, ♣J, ♠2, ♣9, ♥5, ♥7, ♦9 , ♣4
>>> player1
['♣Q', 'JO', '♦3', '♣2', '♠6']
>>> Counter([card[0] for card in player1 if not card=='JO'])
Counter({'♣': 2, '♦': 1, '♠': 1})
>>>
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSRVNUQVJUOiBTaGVsbCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+PiBpbXBvcnQgY3N2X25vcm1hbCBhcyBjc3YKPj4+IGltcG9ydCByYW5kb20KPj4+IGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IENvdW50ZXIKPj4+IAo+Pj4gYyA9IGNzdi5jc3YoW1tmJ3tzdWl0fXtpfScgZm9yIGkgaW4gcmFuZ2UoMSwxNCldIGZvciBzdWl0IGluICgn4pmgJywn4pmlJywn4pmmJywn4pmjJyldKQo+Pj4gYyA9IGMucmVzdWJfZmllbGQocicoXEQpMSQnLCByJ1wxQScpCj4+PiBjID0gYy5yZXN1Yl9maWVsZChyJyhcRCkxMSQnLCByJ1wxSicpCj4+PiBjID0gYy5yZXN1Yl9maWVsZChyJyhcRCkxMiQnLCByJ1wxUScpCj4+PiBjID0gYy5yZXN1Yl9maWVsZChyJyhcRCkxMyQnLCByJ1wxSycpCj4+PiBjLnByaW50KCkK4pmgQSwg4pmgMiwg4pmgMywg4pmgNCwg4pmgNSwg4pmgNiwg4pmgNywg4pmgOCwg4pmgOSwg4pmgMTAsIOKZoEosIOKZoFEsIOKZoEsK4pmlQSwg4pmlMiwg4pmlMywg4pmlNCwg4pmlNSwg4pmlNiwg4pmlNywg4pmlOCwg4pmlOSwg4pmlMTAsIOKZpUosIOKZpVEsIOKZpUsK4pmmQSwg4pmmMiwg4pmmMywg4pmmNCwg4pmmNSwg4pmmNiwg4pmmNywg4pmmOCwg4pmmOSwg4pmmMTAsIOKZpkosIOKZplEsIOKZpksK4pmjQSwg4pmjMiwg4pmjMywg4pmjNCwg4pmjNSwg4pmjNiwg4pmjNywg4pmjOCwg4pmjOSwg4pmjMTAsIOKZo0osIOKZo1EsIOKZo0sKCj4+PiB0cnVtcCA9IFtqIGZvciBpIGluIGMuY3N2IGZvciBqIGluIGldICMy5qyh5YWD44Oq44K544OI44KSMeasoeWFg+ODquOCueODiOOBq+WkieaPmwo+Pj4gdHJ1bXAgKz0gWydKTycsJ0pPJ10gI+OCuOODp+ODvOOCq+ODvOi/veWKoAo+Pj4gcmFuZG9tLnNodWZmbGUodHJ1bXApCj4+PiBjID0gY3N2LmNzdihbdHJ1bXBbaTppKzEzXSBmb3IgaSBpbiByYW5nZShsZW4odHJ1bXApKVs6OjEzXV0pICMx5qyh5YWD44Oq44K544OI44KSMuasoeWFg+ODquOCueODiOOBq+WkieaPm+OBl+OBpmNzduWMlgo+Pj4gYy5wcmludCgpCuKZo1EgLCBKTywg4pmmMyAsIOKZozIsIOKZoDYgLCDimaY2LCDimaA4LCDimaUyLCDimaZBLCDimaBRLCDimaMzLCDimaZLLCDimaY4CuKZoDEwLCDimaM2LCDimaUzICwg4pmlSywg4pmlMTAsIOKZo0ssIOKZpjUsIOKZoEssIOKZpTgsIOKZoEEsIOKZpTQsIOKZpUEsIOKZoDQK4pmjMTAsIOKZoDMsIOKZpjEwLCDimaA5LCDimaM1ICwg4pmmSiwg4pmmUSwg4pmjQSwgSk8sIOKZpVEsIOKZpTYsIOKZpjQsIOKZoDUK4pmmNyAsIOKZpTksIOKZpjIgLCDimaM4LCDimaM3ICwg4pmgNywg4pmlSiwg4pmgSiwg4pmjSiwg4pmgMiwg4pmjOSwg4pmlNSwg4pmlNwrimaY5ICwg4pmjNAoKPj4+IHRydW1wID0gW2ogZm9yIGkgaW4gYy5jc3YgZm9yIGogaW4gaV0gIzLmrKHlhYPjg6rjgrnjg4jjgpIx5qyh5YWD44Oq44K544OI44Gr5aSJ5o+bCj4+PiBwbGF5ZXIxLCB0cnVtcCA9IHRydW1wWzo1XSwgdHJ1bXBbNTpdICNwbGF5ZXIx44GrNeaemumFjeOCiwo+Pj4gYyA9IGNzdi5jc3YoW3RydW1wW2k6aSsxM10gZm9yIGkgaW4gcmFuZ2UobGVuKHRydW1wKSlbOjoxM11dKSAjMeasoeWFg+ODquOCueODiOOCkjLmrKHlhYPjg6rjgrnjg4jjgavlpInmj5vjgZfjgaZjc3bljJYKPj4+IGMucHJpbnQoKQrimaY2LCDimaA4LCDimaUyLCDimaZBLCDimaBRLCDimaMzLCDimaZLLCDimaY4LCDimaAxMCwg4pmjNiwg4pmlMyAsIOKZpUssIOKZpTEwCuKZo0ssIOKZpjUsIOKZoEssIOKZpTgsIOKZoEEsIOKZpTQsIOKZpUEsIOKZoDQsIOKZozEwLCDimaAzLCDimaYxMCwg4pmgOSwg4pmjNSAK4pmmSiwg4pmmUSwg4pmjQSwgSk8sIOKZpVEsIOKZpTYsIOKZpjQsIOKZoDUsIOKZpjcgLCDimaU5LCDimaYyICwg4pmjOCwg4pmjNyAK4pmgNywg4pmlSiwg4pmgSiwg4pmjSiwg4pmgMiwg4pmjOSwg4pmlNSwg4pmlNywg4pmmOSAsIOKZozQKCj4+PiBwbGF5ZXIxClsn4pmjUScsICdKTycsICfimaYzJywgJ+KZozInLCAn4pmgNiddCj4+PiBDb3VudGVyKFtjYXJkWzBdIGZvciBjYXJkIGluIHBsYXllcjEgaWYgbm90IGNhcmQ9PSdKTyddKQpDb3VudGVyKHsn4pmjJzogMiwgJ+KZpic6IDEsICfimaAnOiAxfSkKPj4+IA==