如何从python中的字符串中提取由特定字符组成的子字符串?
比如说,, 假设我有一根绳子。 我想提取一个子串,它只由'b'和'a'组成 那是巴布如何从python中的字符串中提取由特定字符组成的子字符串?,python,string,python-3.x,Python,String,Python 3.x,比如说,, 假设我有一根绳子。 我想提取一个子串,它只由'b'和'a'组成 那是巴布 我通过实现一个嵌套循环并删除除“b”和“a”之外的所有字符,应用了蛮力。您可以使用简单的列表理解来实现这一点 a = "beabeefeab" print("".join([i for i in a if (i == 'a' or i =='b')])) 输出: 不是很优雅,但很管用 a = "beabeefeab" answer = "" for char in a: if char == "a"
我通过实现一个嵌套循环并删除除“b”和“a”之外的所有字符,应用了蛮力。您可以使用简单的列表理解来实现这一点
a = "beabeefeab"
print("".join([i for i in a if (i == 'a' or i =='b')]))
输出:
不是很优雅,但很管用
a = "beabeefeab"
answer = ""
for char in a:
if char == "a" or char == "b":
answer += char
print(answer)
输出
使用集合保留允许的字符,使其更具可扩展性:
s = "beabeefeab"
allowed = set('ab')
print("".join(x for x in s if x in allowed))
您已经描述了您的问题,但没有演示解决问题的任何尝试。您尝试了哪些不起作用的方法?我通过删除除“b”和“a”之外的所有字符来实现嵌套循环,从而应用了蛮力。请您跟踪或解释此循环的工作原理。@Himanshupodar与Rakesh的相同,除了我不是针对单个字符进行显式过滤,而是针对集合中的成员身份进行过滤。
babab
s = "beabeefeab"
allowed = set('ab')
print("".join(x for x in s if x in allowed))