Python 从字符串中获取公共字符

Python 从字符串中获取公共字符,python,string,boolean,Python,String,Boolean,我正在寻找比较两个字符串并能够作为单独字符串返回的方法: 所有的共性 不常见字符(所有字符,但没有常见字符) 一个字符串唯一的字符 例如: A = "123 ABC" B = "135 AZ" thingamajigger(A, B) # would give all these: intersect = "13 A" # (includes space) exclusion = "2BCZ5" a_minus_b = "2BC" b_minus_a = "5Z" a\u减去b非常

我正在寻找比较两个字符串并能够作为单独字符串返回的方法:

  • 所有的共性
  • 不常见字符(所有字符,但没有常见字符)
  • 一个字符串唯一的字符
例如:

A = "123 ABC"
B = "135 AZ"

thingamajigger(A, B)  # would give all these:

intersect = "13 A"  # (includes space)
exclusion = "2BCZ5"
a_minus_b = "2BC"
b_minus_a = "5Z"
a\u减去b
非常简单。。。但是,如果有一种奇特的单行方式来实现它,那么我是开放的

for i in B:
    A = A.replace(i, "")
这有点像字符串上的布尔运算。

使用:


哇!当然然后您可以使用“.joint(set)”将其挤压成一个字符串!谢谢。@Joseph:很漂亮,不是吗?:-)唯一的区别是,集合只包含唯一的元素。所以,假设我想从“你好!”中减去“!”。使用set(“Hello!”)-set(!)会给出“Helo”。但使用上述备选方案a_减_b是可行的:@约瑟夫:我明白了。如果这是你想要的,我会使用
“”。不过,加入([c代表A中的c,如果c不在集合(B)])
;它的效率要高得多(长度的加法与长度的乘法)。
s = set("123 ABC")
t = set("135 AZ")
intersect = s & t # or s.intersection(t)
exclusion = s ^ t # or s.symmetric_difference(t)
a_minus_b = s - t # or s.difference(t)
b_minus_a = t - s # or t.difference(s)