2015-02-05 1 views
-2

나는 편지로 편지를 나눈 이름 목록을 가지고 있는데, 개인 이름을 하나로 연결하고 싶습니다.목록의 특정 부분을 연결합니다. 공백을 제거하십시오.

['S', 't', 'u', 'a', 'r', 't', ' ', 'S', 't', 'e', 'v', 'e', ' ', 'A', 'n', 'd', 'r', 'e', 'w', ' ', 'L', 'u', 'k', 'e', ' ', 'S', 'h', 'a', 'n', 'e', 'y', ' ', 'L', 'u', 'k', 'e', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'R', 'o', 'b', ' ']

나는이로 돌려 싶습니다 :

['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob'] 
+2

' ''.join (your_list) .split()' – vaultah

+1

이것은 가능하지만 어떻게 첫 번째 목록을 얻었습니까? 데이터를 엉망진창에 넣고 고치지 않고 첫 번째로 더 나은 형식으로 데이터를 저장해야합니다. –

+0

@vaultah 그러면 목록이 아닌 문자열이됩니다. –

답변

1

info을 귀하의 목록으로 보겠습니다.

concat = "".join(info) 
names = concat.split() 
print names 

하지만 2 비트 알케미스트의 의견을 참조하십시오. str.isspace를 사용

+0

그래, 나는 편집 된 응답, 환호를 보았습니다. – Shaney96

0
당신은 목록에서 문자를 반복 할 수

는 여기에 약간의 예는 다음과 같습니다

이 내가 현재 가지고있는 것입니다
# chars being your list 
names = [] 

current_name = "" 
for current_char in chars: 
    if current_char == ' ': 
     names.append(current_name) 
     current_name = "" 
    else: 
      current_name += current_char 

return names 
1

사용 itertools.groupby 그룹 :

>>> from itertools import groupby 
>>> lst = ['S', 't', 'u', 'a', 'r', 't', ' ', 'S', 't', 'e', 'v', 'e', ' ', 'A', 'n', 'd', 'r', 'e', 'w', ' ', 'L', 'u', 'k', 'e', ' ', 'S', 'h', 'a', 'n', 'e', 'y', ' ', 'L', 'u', 'k', 'e', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'R', 'o', 'b', ' '] 
>>> [''.join(g) for k, g in groupby(lst, key=str.isspace) if not k] 
['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob'] 

나는 텍스트 파일에서 읽고 있습니다. 나는 그 텍스트를 깨뜨려서 리스트에 넣었고, 이제는 그것을 얻는 방법을 궁금해합니다. 그래서 공백이있을 때이를 인식하고 이에 따라 데이터를 연결합니다. 확실하지 않아요 비록

이 텍스트를 어떻게 읽었는지 모르지만 그것을 잘못 처리하고 있습니다.

>>> s.split() 
['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob'] 
: 당신은 단순히 당신이 읽은 텍스트에 str.split를 사용하는 단어의 목록을 원하는 경우

>>> s = 'Stuart Steve Andrew Luke Shaney Luke Moley Moley Rob' 
>>> list(s) 
['S', 't', 'u', 'a', 'r', 't', ' ', 'S', 't', 'e', 'v', 'e', ' ', 'A', 'n', 'd', 'r', 'e', 'w', ' ', 'L', 'u', 'k', 'e', ' ', 'S', 'h', 'a', 'n', 'e', 'y', ' ', 'L', 'u', 'k', 'e', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'R', 'o', 'b'] 

: 파일에서 읽은 행 또는 전체 텍스트 list()를 호출하지 마십시오

>>> [i for i in "".join(li).split(" ") if i.strip() != ""] 
['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob'] 

목록의 이해 그냥 빈 문자열을 제외하는 것입니다 - li을 고려

+0

응답을 컨텍스트에 연결하기위한 건배, 고맙습니다. – Shaney96

0

입력 목록이 될 수 있습니다.

관련 문제