有没有一个简单/一行的Python等效于R的grepl
函数?
strings = c("aString", "yetAnotherString", "evenAnotherOne")
grepl(pattern = "String", x = strings) #[1] TRUE TRUE FALSE
有没有一个简单/一行的Python等效于R的grepl
函数?
strings = c("aString", "yetAnotherString", "evenAnotherOne")
grepl(pattern = "String", x = strings) #[1] TRUE TRUE FALSE
You can use list comprehension:
strings = ["aString", "yetAnotherString", "evenAnotherOne"]
["String" in i for i in strings]
#Out[76]: [True, True, False]
或使用re
模块:
import re
[bool(re.search("String", i)) for i in strings]
#Out[77]: [True, True, False]
使用Pandas
也可以实现(使用数据框“类似”结构的 R 用户可能会对此库感兴趣):
import pandas as pd
pd.Series(strings).str.contains('String').tolist()
#Out[78]: [True, True, False]
re
库实现一行代码的等效功能:import re
strings = ['aString', 'yetAnotherString', 'evenAnotherOne']
[re.search('String', x) for x in strings]
如果您不需要正则表达式,只是想在字符串中测试子字符串的存在:
["String" in x for x in strings]
"String$"
不起作用,对吗?(即它只是子字符串匹配) - MichaelChirico