2016-10-03 2 views
-1

어디서나이 문제에 대한 해결책을 찾을 수 없었습니다 (사용자 지정 정렬 질문을 많이 확인했습니다). 반복적이거나 너무 구체적이라면 나는 단지 파이썬을 배우기 시작했습니다.파이썬에서 사용자 정의 카드 목록을 만드는 방법은 무엇입니까?

저는 사용자가 프로그램을 상대로하는 카드 게임을 코딩하고 있습니다. 분류해야 할 목록은 카드 한 장입니다. 각 카드는 두 개의 문자로 표시됩니다 (예 : 클럽 중 7 개는 7c, 다이아몬드는 Td). 순위가 다음 순서대로 정렬되도록 카드를 정렬하고 싶습니다. 3, 4, 5, 6, 7, 8, 9, J, Q, K, A, 2T.

손이 ['3d', 'Ac', '6h', 'Kd', '2s'] 인 경우 ['3d', '6h', 'Kd', 'Ac', '2s']으로 표시됩니다.

답변

1

먼저 순서를 정의하십시오. 다음 순서로 손을 정렬하십시오.

In [39]: order = "3456789JQKA2T" 

In [40]: hand = ['3d', 'Ac', '6h', 'Kd', '2s'] 

In [41]: hand.sort(key=lambda c:order.index(c[0])) 

In [42]: hand 
Out[42]: ['3d', '6h', 'Kd', 'Ac', '2s'] 
+0

그랬습니다! 정말 고맙습니다. 비슷한 해결책을 시도했지만 list.sort() 대신 sorted()를 사용했습니다. –

관련 문제