2013-03-10 3 views
0

우리는이 있습니다가입 튜플 요소 - 지능형리스트

lst = [('543', 'Tom', '- Jerry'), ('544', 'X-man - ', 'Hulk')]` 
lst = [h+a for n,h,a in lst] 
lst =[name.split(' - ') for name in lst] 

내가 그들을 가입을 위해 일하지만, 지능형리스트 것이다 첫째, [1] 함께 각 튜플에 [2] 요소를 결합 할과 - 분할 코드에 그 분할을 하지 않습니다.

[('534', 'Tom, 'Jerry'), ('544', 'X-man', 'Hulk')]

코드로 우리는 얻을 위 :

[('Tom, 'Jerry'), ('X-man', 'Hulk')]

@EDIT에게

을 내가 또 다른 문제가

우리는 최종 출력이 원하는 : 때때로 내 튜플이 계속됩니다. 이 (2 튜플) 같은 아인 단지 2 개 항목 : 그러나 invalid syntax 예외가 발생 lst = [tuple(i.split(' - ') if len(tup) == 2 else tuple(i.strip(' - ') for i in tup) for tup in lst]을 : [('534', 'Tom, 'Jerry'), ('544', 'X-man - Hulk')] 그래서 아래에서 목록의 이해와 나는이 수정 된 버전과 함께 제공되는 - 제거하고자합니다.

나는 비슷한 문제에 대해 다시 묻는 것에 대해 불쌍한 사람들이지만 목록 이해력은 나에게 상당히 새로운 개념이지만 위와 같은 결과가 나왔을 때 나는 내 프로그램을 마칠 것이므로 너무 성급하게 전체 문서를 공부할 것입니다. 바로 지금 주제.

답변

3

아마도 내가 틀 렸습니다. 그러나 정말로 공백과 '-'를 제거하고 싶습니까?

In [15]: lst = [('543', 'Tom', '- Jerry'), ('544', 'X-man - ', 'Hulk')] 

In [16]: [tuple(i.strip(' -') for i in tup) for tup in lst] 
Out[16]: [('543', 'Tom', 'Jerry'), ('544', 'X-man', 'Hulk')] 
+0

그래, 나는 단지 '-' 고마워! – nutship

+0

@nutship'-'를 벗겨 내고 싶다면 root의 해결책은 더 깨끗합니다 – valtron

+0

@ root 왜냐하면 제가 다른 비슷한 문제를 가지고 있기 때문에 제 1 기둥에 다시 한 번 눈을 뜨게 할 수 있습니다. – nutship