Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按空格分割字符串并删除非ASCII字符?_Python_Algorithm_Ascii_List Comprehension - Fatal编程技术网

Python 如何按空格分割字符串并删除非ASCII字符?

Python 如何按空格分割字符串并删除非ASCII字符?,python,algorithm,ascii,list-comprehension,Python,Algorithm,Ascii,List Comprehension,当我得到一个字符串,如“Ready[[[,staid,go!”,我想把它变成这样的列表:[Ready,staid,go!]。目前,我能做的最好的是两个列表理解,但我无法找到一种方法来组合它们 text_list = [i for i in text.split()] output: ['Ready[[[,', 'steady,', 'go!'] clean_list = [x for x in list(text) if x in string.ascii_letters] output: [

当我得到一个字符串,如“Ready[[[,staid,go!”,我想把它变成这样的列表:
[Ready,staid,go!]
。目前,我能做的最好的是两个列表理解,但我无法找到一种方法来组合它们

text_list = [i for i in text.split()]
output: ['Ready[[[,', 'steady,', 'go!']

clean_list = [x for x in list(text) if x in string.ascii_letters]
output: ['R', 'e', 'a', 'd', 'y', 's', 't', 'e', 'a', 'd', 'y', 'g', 'o']
clean\u list
确实成功地删除了非ASCII字母,但实际上将每个字符都转换为一个列表元素。
text\u list
保持格式不变,但不删除非ASCII字符。如何组合这两种逻辑以提供所需的输出?

这应该可以工作:

import re, string
# filter out all unwanted characters using regex
pattern = re.compile(f"[^{string.ascii_letters} !]")
filtered = pattern.sub('', "Ready[[[, steady, go!")
# split
result = filtered.split()

稍加解释就能提高答案的质量。