Python只保留列表中的字母数字单词
我有一个类似下面的单词列表Python只保留列表中的字母数字单词,python,list,Python,List,我有一个类似下面的单词列表 mylist=["hi", "h_ello", "how're", "you", "@list"] 我想拉出所有非字母数字字符,给出如下结果: "h_ello", "how're", "@list" 请注意,在现实生活中,我有一个更长的列表,其中包含一些非字母数字的实例,如~,?,>,=,+等 请问有人知道怎么做吗? 谢谢使用str.isalpha() Ex: mylist=["hi", "h_ello", "how'r
mylist=["hi", "h_ello", "how're", "you", "@list"]
我想拉出所有非字母数字字符,给出如下结果:
"h_ello", "how're", "@list"
请注意,在现实生活中,我有一个更长的列表,其中包含一些非字母数字的实例,如~,?,>,=,+等
请问有人知道怎么做吗?
谢谢使用str.isalpha()
Ex:
mylist=["hi", "h_ello", "how're", "you", "@list"]
print([i for i in mylist if not i.isalpha()])
['h_ello', "how're", '@list']
输出:
mylist=["hi", "h_ello", "how're", "you", "@list"]
print([i for i in mylist if not i.isalpha()])
['h_ello', "how're", '@list']
您可以将
列表理解
与isalnum()
函数结合使用
mylist=["hi", "h_ello", "how're", "you", "@list"]
print([i for i in mylist if not i.isalnum()])
输出
['h_ello', "how're", '@list']
发件人:
str.isalnum()
如果字符串中的所有字符均为
字母数字,并且至少有一个字符,否则为false。A.
如果以下其中一项返回True,则字符c为字母数字:
c.isalpha()
,c.isdecimal()
,c.isdigit()
,或c.isnumeric()
您还可以将
过滤器
与re
一起使用:
import re
mylist=["hi", "h_ello", "how're", "you", "@list"]
new_list = list(filter(lambda x:re.findall('[\W_]', x), mylist))
输出:
['h_ello', "how're", '@list']
最好选择isalnum或regex,这里我尝试了一些不同的方法只是为了好玩,这不是为了生产代码,这需要时间,我只是尝试向您展示一种不同的方法:
import unicodedata
import sys
mylist = ["hi", "h_ello", "how're", "you", "@list"]
def translate(text_):
pun=[i for i in range(sys.maxunicode) if unicodedata.category(chr(i)).startswith('P')]
if True in [True if ord(i) in pun else False for i in text_ ]:
return text_
print(list(filter(lambda x:x,[translate(i) for i in mylist])))
输出:
['h_ello', "how're", '@list']
太神了非常感谢。我想这会复杂得多——如果这是一个愚蠢的问题,请道歉——谢谢@Fern_2018,您也可以像在我的回答中一样使用
isalnum
方法。@Rakesh,'a1'。isalpha()
将使用isalpha
方法返回False
。@MihaiAlexandru Ionut。根据OP的示例,只需要alpha字符。如果OP需要alpha+数字,则isalpha
为useful@Rakesh,否,因为'a1'.isalpha()
将返回False
,它是字母数字的