from collections import defaultdict
from random import shuffle
import operator
artist=['Beatles','Beatles','소녀시대','소녀시대','소녀시대','KING','KING','Parrel Williams']
music=['Yesterday','let it be','소원을 말해봐','Gee','다시만난세계','LEO','NOGOSAN','Happy']
box = defaultdict(list) ## list 형태로 딕셔너리 빈 공간 잡는 라인
for i, arti in enumerate(artist):
box[arti].append(music[i])
shuffle(box[arti])
## 시행횟수 결정
cnt=0
for i in box.values():
cnt+=len(i)
## 내부의 요소 갯수가 많은 순서대로 정렬
orderBox = defaultdict(int)
for i in box:
orderBox[i] = len(box[i])
def f2(x):
return x[1]
orderBox = sorted(orderBox.items(), key=f2, reverse=True)
temp = defaultdict(list) ## list 형태로 딕셔너리 빈 공간 잡는 라인
for i in range(len(orderBox)):
temp[orderBox[i][0]] = box[orderBox[i][0]]
## 출력
for j in range(cnt):
for i in temp:
try :
print(box[i][j], end = ' ')
except :
continue