我想将此文本拆分为多个单词,但split()总是向我返回字母而不是整个单词。
f="""Police have seized fake money being used to buy goods in ALAWA. An
investigation is underway to locate where it came from. It's understood 50
dollar notes with Chinese symbols have emerged at a Woolworths, butcher
and bottle shop."""
words = set(line.strip() for line in f)
print(words)
这是我收到的输出:
{'', 'u', 's', 'l', '(', 'o', 'D', 't', '3', '/', 'I', 'C', 'T', '1', '-', '+', 'i', '6', '0', 'g', 'Q', '8', 'M', 'm', 'z', 'y', '4', 'O', 'v', '2', ':', 'U', 'f', 'B', 'w', 'L', 'V', 'a', 'S', 'k', "'", '5', 'R', '•', 'p', 'P', 'e', 'X', 'd', 'b', 'n', 'r', 'A', 'W', ',', '7', '9', ')', 'c', 'h', 'N', '.', '&'}
你知道为什么吗?
答案 0 :(得分:4)
简单地写:
words = set(f.split()) #you have used strip instead of split
答案 1 :(得分:2)
words = set(f中的行的line.strip())
您认为您可能正在看这里的行,但实际上您正在遍历一个巨大的字符串。在Python中,您可以遍历字符串,它将返回构成该字符串的所有字符的列表。
此外,strip函数仅从字符串https://docs.python.org/2/library/stdtypes.html?highlight=strip#str.strip的开头和结尾删除某些字符。对于您来说,由于省略了任何参数,因此只会删除所有前导和尾随空格。
您可以使用带有空格作为参数的拆分函数https://docs.python.org/2/library/stdtypes.html?highlight=split#str.split来实现所需的功能。
答案 2 :(得分:2)
line.strip()
将一个一个地横穿每个字符。 strip()方法返回字符串的副本,在该副本中,从字符串的开头和结尾都删除了所有字符。您应该使用split()
来将字符串按字符串之间的空格分隔成字符串列表。