Python:如何将一个集合中的条目join到一个string中?

基本上,我试图将一个集合中的条目连接在一起,以便输出一个string。 我正在尝试使用与列表的联接function类似的语法。 这是我的尝试:

list = ["gathi-109","itcg-0932","mx1-35316"] set_1 = set(list) set_2 = set(["mx1-35316"]) set_3 = set_1 - set_2 print set_3.join(", ") 

但是我得到这个错误: AttributeError: 'set' object has no attribute 'join'

什么是同等要求集?

 ', '.join(set_3) 

join是一个string方法,而不是一个set方法。

集合没有join方法,但可以使用str.join

 ', '.join(set_3) 

str.join方法可以处理任何可迭代的对象,包括列表和集合。

注意:在包含整数的集合上使用它要小心; 您将需要在join调用之前将整数转换为string。 例如

 set_4 = {1, 2} ', '.join(str(s) for s in set_4) 

join在string上被调用:

 print ", ".join(set_3) 

也没有set也没有list有这样的方法join ,string有:

 ','.join(set(['a','b','c'])) 

顺便说一下,你不应该使用你的variables名称list 。 给它一个list_my_list或者其他一些名字,因为list是很经常用到的python函数。

Set没有订单 – 所以当你将列表转换成集合时,你可能会失去你的订单,即:

 >>> orderedVars = ['0', '1', '2', '3'] >>> setVars = set(orderedVars) >>> print setVars ('4', '2', '3', '1') 

一般来说,订单将保持不变,但对于大集合,几乎肯定不会。

最后,让人们想知道,在连接中你不需要','。

只是:''。join(设置)

🙂

我想你只是倒退了。

 print ", ".join(set_3) 

你有join声明向后尝试:

 print ', '.join(set_3)