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)