是否有一个简单的/单行的python等价于R的grepl函数?
grepl
strings = c("aString", "yetAnotherString", "evenAnotherOne") grepl(pattern = "String", x = strings) #[1] TRUE TRUE FALSE
7nbnzgx91#
你可以使用列表解析:
strings = ["aString", "yetAnotherString", "evenAnotherOne"] ["String" in i for i in strings] #Out[76]: [True, True, False]
或者使用re模块:
re
import re [bool(re.search("String", i)) for i in strings] #Out[77]: [True, True, False]
或者使用Pandas(R用户可能对此库感兴趣,使用 Dataframe “相似”结构):
Pandas
import pandas as pd pd.Series(strings).str.contains('String').tolist() #Out[78]: [True, True, False]
polhcujo2#
使用re可以得到一行等价语句:
import re strings = ['aString', 'yetAnotherString', 'evenAnotherOne'] [re.search('String', x) for x in strings]
这不会给予你布尔值,但真实的结果一样好。
ldxq2e6h3#
如果不需要正则表达式,而只是测试字符串中是否存在susbstring:
["String" in x for x in strings]
3条答案
按热度按时间7nbnzgx91#
你可以使用列表解析:
或者使用
re
模块:或者使用
Pandas
(R用户可能对此库感兴趣,使用 Dataframe “相似”结构):polhcujo2#
使用
re
可以得到一行等价语句:这不会给予你布尔值,但真实的结果一样好。
ldxq2e6h3#
如果不需要正则表达式,而只是测试字符串中是否存在susbstring: