파이썬에 단어를 목록으로 분할하는 기능이 있습니까? [복제]


100

파이썬에 단어를 단일 문자 목록으로 분할하는 기능이 있습니까? 예 :

s="Word to Split"

얻기 위해

wordlist=['W','o','r','d','','t','o' ....]

이 문서를 확인하십시오 : docs.python.org/library/stdtypes.html

5
오래된 스레드이지만 언급 할 가치가 있습니다. 대부분의 경우이 작업을 전혀 수행 할 필요가 없습니다. 파이썬 문자열의 문자는 목록으로 직접 액세스 할 수 있습니다. s[2]'r'이고 s[:4]'Word'이며 len(s)13입니다. 또한 반복 할 수 있습니다.for char in s: print char
domoarigato

@domoarrigato이지만 srting의 다른 동작과 변경 가능성에 대한 목록이이를 수행하는 이유가 될 수 있습니다.
brainLoop

답변:


226
>>> list("Word to Split")
['W', 'o', 'r', 'd', ' ', 't', 'o', ' ', 'S', 'p', 'l', 'i', 't']

6
"Word to Split".split ( '')이 똑같은 일을하지 않는 이유를 아는 이유가 있습니다. 그렇지는 않지만 정말 그래야 할 것 같습니다.
Walter Nissen

2
@Walter Nissen : 시도 할 때 "ValueError : empty separator"가 표시됩니다. 빈 정규식은별로 잘 정의되어 있지 않습니다.
Greg Hewgill

split()문자를 가져 오는 데 사용할 구분 기호가 없습니까? split()두 번째 인수 maxsplits를 취하지 만 list(). 물론 작업 방법이 있습니다 ...
Chris_Rands

20

가장 쉬운 방법은 아마도를 사용하는 것입니다 list(). 그러나 적어도 하나의 다른 옵션도 있습니다.

s = "Word to Split"
wordlist = list(s)               # option 1, 
wordlist = [ch for ch in s]      # option 2, list comprehension.

그들은해야 모두 당신이 필요 당신을 줄 :

['W','o','r','d',' ','t','o',' ','S','p','l','i','t']

앞서 언급했듯이 첫 번째가 예제에 가장 바람직 할 수 있지만 다음과 같이 항목에 임의의 함수를 적용하려는 경우와 같이 더 복잡한 작업에 후자를 매우 편리하게 만들 수있는 사용 사례가 있습니다.

[doSomethingWith(ch) for ch in s]

7

목록 기능이이를 수행합니다.

>>> list('foo')
['f', 'o', 'o']

4

규칙의 남용, 동일한 결과 : ( '분할 단어'에서 x의 경우 x)

실제로는 목록이 아니라 반복자입니다. 그러나 당신은 정말로 신경 쓰지 않을 것입니다.


물론 'Word to split'직접 사용하는 것도 자체 문자의 반복 가능하므로 생성기 표현은 무의미한 래핑입니다.
ShadowRanger

1
text = "just trying out"

word_list = []

for i in range(0, len(text)):
    word_list.append(text[i])
    i+=1

print(word_list)

['j', 'u', 's', 't', ' ', 't', 'r', 'y', 'i', 'n', 'g', ' ', 'o', 'u', 't']

0

def count () : list = 'oixfjhibokxnjfklmhjpxesriktglanwekgfvnk'

word_list = []
# dict = {}
for i in range(len(list)):
    word_list.append(list[i])
# word_list1 = sorted(word_list)
for i in range(len(word_list) - 1, 0, -1):
    for j in range(i):
        if word_list[j] > word_list[j + 1]:
            temp = word_list[j]
            word_list[j] = word_list[j + 1]
            word_list[j + 1] = temp
print("final count of arrival of each letter is : \n", dict(map(lambda x: (x, word_list.count(x)), word_list)))

0

가장 쉬운 옵션은 spit () 명령을 사용하는 것입니다. 그러나 사용하고 싶지 않거나 바자회 이유로 작동하지 않는 경우 항상이 방법을 사용할 수 있습니다.

word = 'foo'
splitWord = []

for letter in word:
    splitWord.append(letter)

print(splitWord) #prints ['f', 'o', 'o']
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.