単語をリストに分割する関数がPythonにありますか?[重複]


100

Pythonに単語を1文字のリストに分割する関数はありますか?例えば:

s="Word to Split"

取得するため

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

次のドキュメントをチェックしてください:docs.python.org/library/stdtypes.html

5
古いスレッドですが、言及する価値があります。ほとんどの場合、これを行う必要はありません。Python文字列の文字は、リストとして直接アクセスできます。s[2]R「」は、とs[:4]「ことば」で、len(s)あなたは同様にそれらを反復処理することができます13.です:for char in s: print char
domoarigato

@domoarrigatoですが、可変性のためのsrtingとlistの動作が異なるため、これを行う理由になる場合があります。
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」が表示されます。空の正規表現はひどく明確に定義されていません。
グレッグヒューギル2010

文字split()を取得するために使用する区切り文字はありませんか?split()2番目の引数maxsplitsを取りますが、と同等のものはありませんlist()。もちろん、回避策があります...
Chris_Rands

20

最も簡単な方法はおそらくを使用するlist()ことですが、他にも少なくとも1つのオプションがあります。

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

ルールの乱用、同じ結果:(「Word to split」のx for x)

実際にはリストではなくイテレータです。しかし、あなたは本当に気にしないでしょう。


もちろん、'Word to split'直接使用することも独自の文字の反復可能であるため、ジェネレータ式は無意味なラッピングです。
ShadowRanger 2016年

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.