Python 3.x 如何在没有默认值的情况下连接两个集合;排序“;

Python 3.x 如何在没有默认值的情况下连接两个集合;排序“;,python-3.x,pandas,numpy,dataframe,set,Python 3.x,Pandas,Numpy,Dataframe,Set,正在寻找将两个集合作为附加而不进行排序 这是我的密码: a = {123,456,789} b = {777,888} a = a.union(b) a 输出: {123, 456, 777, 789, 888} 期望输出: {123, 456, 789, 777, 888} 谢谢 如果我们需要订单 a = {123,456,789} b = {777,888} a = list(a)+[i for i in b if i not in a] a Out[58]: [456, 123,

正在寻找将两个集合作为附加而不进行排序

这是我的密码:

a = {123,456,789}
b = {777,888}
a = a.union(b)
a
输出:

{123, 456, 777, 789, 888}
期望输出:

{123, 456, 789, 777, 888}
谢谢

如果我们需要订单

a = {123,456,789}
b = {777,888}
a = list(a)+[i for i in b if i not in a]

a
Out[58]: [456, 123, 789, 888, 777]

panda
方法
unique

pd.Series(list(a)).append(pd.Series(list(b))).unique()
Out[66]: array([456, 123, 789, 888, 777], dtype=int64)

集合是无序的,所以你不能保证安排。BEN_YO的回答将使第二组元素位于末尾,但内部顺序将有所不同,如他的示例输出所示

如果需要订购,则需要使用不同的集合类型。如果您想要排序和唯一性,一个快速的解决方法是使用字典,就像在现代python字典中一样,键是有序和唯一的

a = {123: '',456: '',789: ''}
b = {777: '',888: ''}

a = {**a, **b}

尽管如此,您不能使用更快的合并操作(如union),因此它可能不是理想的解决方案。

集合没有顺序。你不一定能保证下订单。谢谢@BEN。是否有任何可能的方法将其保持为一个集合,并且顺序符合我所需的输出?@Mick set将自行更改顺序,如果需要集合,则无法保持原始顺序。我会做列表~就像在现代python字典中一样,键是有序的和唯一的。你能提供一个参考吗?我认为这就是排序dict的目的,字典键基本上是集合。从3.7开始正式使用这种方式,从3.6开始非正式使用。