# 가수리스트 섞기
artists = list(box.keys())
shuffle( artists )
# 가수별 노래리스트 섞기
for a in artists:
shuffle(box[a])
# 가수순으로 노래 한곡씩 추가하기
music = []
for i in range(len(box[artist[0]])):
for a in artists:
music.append(box[a][i])
print(music)
--------------------------------------------------------------------
import numpy as np
from collections import defaultdict
artist = ['소녀시대', '소녀시대', '방탄소년단', '방탄소년단', '소녀시대']
music = ['다시만난세계', 'Gee', 'DNA', 'Fire', '소원을 말해봐']
box = defaultdict(list)
for i, arti in enumerate(artist):
box[arti].append(music[i])
print('box: \n', box, '\n')
# 가수리스트 섞기
artists = list(box.keys())
shuffle( artists )
# 가수별 노래리스트 섞기
music = []
for a in artists:
shuffle(box[a])
music.append(box[a])
print('1. 가수별 노래리스트 섞기\n', music, '\n')
# 뮤직리스트 행렬로 만들기
# 최대곡수에 맞춰 한번 다 돈 가수는 한번더 돌도록 만들것
m = max([ len(music[i]) for i in range(len(music)) ])
for i in range( len(music) ):
if len(music[i])<m:
music[i] += music[i][:(m-len(music[i]))]
music = np.array(music)
print('2. 뮤직리스트 행렬로 만들기\n',music, '\n')
# 뮤직리스트 행렬을 세로로 읽도록 전치행렬 후 펼치기
music = music.T.flatten()
print('3. 뮤직리스트 행렬을 세로로 읽도록 전치행렬 후 펼치기\n', music, '\n')
print('------------------------\n<결과>')
print(music)