python中是否有将单词拆分为列表的函数?[重复]


100

python中是否有将单词分解为单个字母列表的函数?例如:

s="Word to Split"

要得到

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

只需查看以下文档即可:docs.python.org/library/stdtypes.html

5
旧线程,但值得一提:大多数情况下,您根本不需要这样做。python字符串的字符可以直接作为列表访问,即。s[2]是'r',并且s[:4]是'Word',并且len(s)是13。您也可以对其进行迭代:for char in s: print char
domoarigato

@domoarrigato,但由于srting和可变性列表的行为不同,可能是这样做的原因。
brainLoop18年

Answers:


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

6
您知道“ Word to Split” .split('')为什么不会做相同事情的任何原因。它没有,但实际上似乎应该如此。
沃尔特·尼森

2
@沃尔特·尼森:尝试这样做时,出现“ ValueError:空分隔符”。空的正则表达式定义不正确。
格雷格(Greg Hewgill)2010年

是否没有用于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():列表='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']
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.