Python 如何将集合中的条目合并为一个字符串?
基本上,我试图将集合中的条目连接在一起,以便输出一个字符串。我试图使用类似于列表的join函数的语法。以下是我的尝试:Python 如何将集合中的条目合并为一个字符串?,python,list,set,python-2.7,Python,List,Set,Python 2.7,基本上,我试图将集合中的条目连接在一起,以便输出一个字符串。我试图使用类似于列表的join函数的语法。以下是我的尝试: 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”对象没有属性“join” 集合的等价调用是什么
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”对象没有属性“join”
集合的等价调用是什么 我想你只是把它倒过来了
print ", ".join(set_3)
join
是字符串方法,而不是set方法。对字符串调用join
:
print ", ".join(set_3)
无论是
集合
还是列表
都没有这样的方法连接
,字符串都有:
','.join(set(['a','b','c']))
顺便说一下,您不应该对变量使用name
list
。给它一个列表
,我的列表
或其他名称,因为列表
是python函数中经常使用的函数。您将join语句向后调用,请尝试:
print ', '.join(set_3)
集合没有
join
方法,但可以使用
str.join
方法将适用于任何iterable对象,包括列表和集合
注意:在包含整数的集合上使用此选项时要小心;在调用join之前,需要将整数转换为字符串。比如说
set_4 = {1, 2}
', '.join(str(s) for s in set_4)
集合没有订单-因此,当您将列表转换为集合时,可能会丢失订单,即:
>>> orderedVars = ['0', '1', '2', '3']
>>> setVars = set(orderedVars)
>>> print setVars
('4', '2', '3', '1')
一般来说,订单将保持不变,但对于大型集合,几乎肯定不会
最后,以防万一人们想知道,你不需要一个',在加入
仅:“”。加入(集合)
:)我写了一个处理以下边缘情况的方法:
- 定一号。join({'abc'})将返回
。我想要的输出是“abc”“A,b,c”
- 集合包括整数
- 空集合应返回
“”
如果集合包含整数/长整数,则必须使用“
”,“.join(集合3中s的str(s)
无效语法否<代码>打印(“,”.join(set_3))它在2.7中有效。可以使用”.join({'abc'})
获得所需的o/p“abc”
。有趣。刚刚意识到set('abc')和{'abc'}有不同的行为。这正是让我失望的地方。我已经更新了操作&FYI,{'abc'}是一个集合。join(set(ip_data))给出了字母的随机顺序(例如,“bca”),因为set创建了三个元素{'a','b','c',但不保留顺序。
set_4 = {1, 2}
', '.join(str(s) for s in set_4)
>>> orderedVars = ['0', '1', '2', '3']
>>> setVars = set(orderedVars)
>>> print setVars
('4', '2', '3', '1')
def set_to_str(set_to_convert, separator=", "):
set_size = len(set_to_convert)
if not set_size:
return ""
elif set_size == 1:
(element,) = set_to_convert
return str(element)
else:
return separator.join(map(str, set_to_convert))