- Write a Python program to create a string from two given strings by concatenating the characters that are not contained by both strings. The characters from the 1st string should appear before the characters from the 2nd string. Return the resulting string. Sample input: ‘0abcxyz’, ‘abcxyz1’ Expected Output: ‘01’
我已经得到了结果,但想了解是否有更好的方法来达到相同的结果。'''
var14_1, var14_2 = '0abcxyz', 'abcxyz1'
def concat(var14_1,var14_2):
res = []
[res.append(s) for s in var14_1 if s not in var14_2]
[res.append(s) for s in var14_2 if s not in var14_1]
print(''.join(res))
concat(var14_1,var14_2)
上面的代码将结果返回为 01,即 预期的。但是我想知道是否还有其他方法 无需使用“for循环”即可获得此解决方案 两次。您的反馈将极大地帮助我提高 Python 技能。提前致谢!
请您参考如下方法:
最好不要只使用列表理解来运行多次 res.append()
var14_1, var14_2 = '0abcxyz', 'abcxyz1'
r1 = [s for s in var14_1 if s not in var14_2]
r2 = [s for s in var14_2 if s not in var14_1]
res = r1 + r2
print(''.join(res))
要使用一个 for 循环,您可以将字符串转换为集合并获取常用字符
common = set('0abcxyz') & set('abcxyz1')
然后你可以使用一个 for 连接字符串 var14_1 + var14_2
common = set('0abcxyz') & set('abcxyz1')
res = [s for s in var14_1 + var14_2 if s not in common]
print(''.join(res))
