如何在python中等同和/或比较四个包含字符串的变量

How to equate and/or compare four different variables that hold strings in python

本问题已经有最佳答案,请猛点这里访问。

我有四个不同的变量,比如,

1
2
3
4
s1 = 'Foo'
s2 = 'Boo'
s3 = 'Foo'
s4 = 'Duh'

现在,我想从所有保持秩序的s1s2s3s4中形成一个所有唯一值的字符串。在上面的例子中,字符串类似于:

1
"We have a collection of types 'Foo', 'Boo' and 'Duh'."

有没有一个简单的方法来实现这一点?


要消除重复项并保留出现顺序,需要"手动"附加值:

1
2
3
4
5
6
7
s ="We have a collection of types {}."
lst = [s1,s2,s3,s4]
fin = []
for x in lst:
    if x not in fin:
        fin.append(x)
print(s.format(",".join(fin)))

看看这个python演示

如果不想保留订单,可以使用返回列表中唯一项目的set(只需从变量创建一个列表):

1
2
3
4
5
s1 = 'Foo'
s2 = 'Boo'
s3 = 'Foo'
s4 = 'Duh'
print("We have a collection of types {}.".format(",".join(set([s1,s2,s3,s4]))))

哪里:

  • "We have a collection of types {}.".format()是字符串格式方法,其中字符串文字包含一个{},它是传递给format方法的唯一参数的占位符。
  • ",".join()—用逗号+空格将项目连接在一起的列表中生成字符串的方法。
  • set()—获取iterable并返回iterable中frozenset和unique项的方法。
  • [s1,s2,s3,s4]—从独立变量创建的列表。

参见python演示