这是我试图编辑的代码,但我不知道如何:
var1= 'ABC'
var2= 'DBC'
match= any(x in var1 for x in var2)
if any(x in var1 for x in var2):
print("var1 in var2")
print("The letters that are in var1 and var2 are", match)
else:
print("No results.")
当我运行该代码时,我得到的这些结果对我来说毫无用处:
var1 in var2
The letters that are in var1 and var2 are True
我希望程序做的是:
var1 in var2
The letters that are in var1 and var2 are BC
如果要将var1更改为ABD,我希望结果为:
var1 in var2
The letters that are in var1 and var2 are BD
P.S。我还希望它按字母顺序打印字母:
所以我希望结果类似于The letters that are in var1 and var2 are BD
,而不是The letters that are in var1 and var2 are DB
。
非常感谢。 您诚挚的。
答案 0 :(得分:2)
var1= 'ABC'
var2= 'DBC'
match= [x for x in var1 if x in var2]
if match:
print("var1 in var2")
match_str = ''.join(sorted(match))
print("The letters that are in var1 and var2 are %s." % match_str)
else:
print("No results.")
打印:
var1 in var2
The letters that are in var1 and var2 are BC.
基本上我使用列表推导来查找哪些元素是相同的,检查列表是否为空if match
,使用sorted
函数排序,然后将每个元素连接成带有''.join
的单个字符串(与空字符串''
连接,因为我们不希望字母之间有空格)。
然后,为了避免在输出中使用逗号,我使用%
格式语法将已排序的字符插入到输出句子中。
答案 1 :(得分:1)
您也可以使用set算术来执行此操作。
>>> var1 = 'ABC'
>>> var2 = 'DBC'
>>> ''.join(set(var1).intersection(set(var2)))
'CB'
更改var1
,
>>> var1 = 'ABD'
>>> ''.join(set(var1).intersection(set(var2)))
'BD'