2014-12-03 3 views
-1

비행 데이터가있는이 문자열이 있으며 비행 코드를받는 함수를 작성하여 시간순으로 정렬 된 비행 코드를 가진 튜플을 반환하고 싶습니다. 이것이 가능한가? 나는 이미 많은 방법들을 시도해 왔으며 나는 그것을 만들 수없는 것처럼 보입니다. 어쩌면 사전에요?튜플 요소를 주문하십시오

"KLM75, Amsterdam, 14:35, 60, 50 
AF111, Paris, 14:20, 50, 64 
LH333, Frankfurt, 14:10, 112, 203 
KLM71, Madrid, 14:55, 120, 100 
TAP103, Salvador, 15:20, 174, 210 
LH123, Berlin, 15:10, 115, 210" 

#(CODE, Origin, time, passengers, lugage) 
+0

내가 여러 가지로 시작 시도했다 : 가질수있어 튜플 필요 요소를 팝업하는 목록으로 항목을 분할하는 방법, 그러나 나는 계속할 수없는 지점에 항상 도착합니다 ... –

+0

예제 입력과 예상 출력을 제공 할 수 있습니까? 나는 당신이 "시간에 따라 주문한 항공편 코드를 가진 튜플"이라는 의미를 이해하는데 어려움을 겪고 있습니다. – 5gon12eder

+0

"다양한 방법"은 "여러 가지 방법"보다 더 구체적이지 않습니다. – AndySavage

답변

-1
b="""KLM75, Amsterdam, 14:35, 60, 50 
AF111, Paris, 14:20, 50, 64 
LH333, Frankfurt, 14:10, 112, 203 
KLM71, Madrid, 14:55, 120, 100 
TAP103, Salvador, 15:20, 174, 210 
LH123, Berlin, 15:10, 115, 210""" 

print(sorted(b.split('\n'),key=lambda x:x.split(',')[2])) 
['LH333, Frankfurt, 14:10, 112, 203', 'AF111, Paris, 14:20, 50, 64', 'KLM75, Amsterdam, 14:35, 60, 50', 'KLM71, Madrid, 14:55, 120, 100', 'LH123, Berlin, 15:10, 115, 210', 'TAP103, Salvador, 15:20, 174, 210'] 

후, 모든 라인을 얻을 시간을 정렬하는 정렬 사용할 수 있습니다. 람다 ('') 분할을 사용하여 키, 즉 시간을 제공 할 것 [2]

위의 코드가 수행에만 튜플을 생성하지 않았다 분류 :

print(sorted([tuple(x.split(',')) for x in b.split('\n')],key=lambda x:x[2])) 
[('LH333', ' Frankfurt', ' 14:10', ' 112', ' 203'), ('AF111', ' Paris', ' 14:20', ' 50', ' 64'), ('KLM75', ' Amsterdam', ' 14:35', ' 60', ' 50'), ('KLM71', ' Madrid', ' 14:55', ' 120', ' 100'), ('LH123', ' Berlin', ' 15:10', ' 115', ' 210'), ('TAP103', ' Salvador', ' 15:20', ' 174', ' 210')] 
+0

downvote에 대한 이유가 무엇입니까 ??? – Hackaholic

0

당신은 문자열을 분할하고 분류 할 수 있습니다, 첫째 '\n'와 문자열이 다음 ','으로 분할 분할하고 마지막에 당신은 단지 시간이다 splited 문자열 2 번째의 요소를 기반으로 sorted 기능을 사용할 수 있습니다 :

를 개행 문자로 위의 코드 분할 INT
>>> t=tuple(i.split(',') for i in s.split('\n')) 
>>> sorted(t,key= lambda x : x[2]) 
[['LH333', ' Frankfurt', ' 14:10', ' 112', ' 203'], ['AF111', ' Paris', ' 14:20', ' 50', ' 64'], ['KLM75', ' Amsterdam', ' 14:35', ' 60', ' 50'], ['KLM71', ' Madrid', ' 14:55', ' 120', ' 100'], ['LH123', ' Berlin', ' 15:10', ' 115', ' 210'], ['TAP103', ' Salvador', ' 15:20', ' 174', ' 210']]