我的问题在最后一句话,这是一个简短的介绍。我搜索了将一个元素放在一组中的不同方法,这些方法都在互联网上。例如,
set1 = {"String"}
或
set1 = set()
set1.add("String")
您可能已经知道使用以下方式给出一组字母
set1 = set("String")
#{'S','t','r','i','n','g'}
解决方案将是
set1 = set(["String"])
我的问题是:幕后发生了什么?为什么这种方法可以解决问题?
答案 0 :(得分:2)
在Python中,字符串是一种序列类型,其元素只是其各个字符。由于set()
构造函数采用序列并将其元素转换为其设置项,因此将字符串传递给set()
构造函数将创建一组字符串的各个字符。如果您要使用一组字符串,则需要将{string}传递给set()
构造函数,以避免将字符串本身视为序列。
答案 1 :(得分:1)
set
构造函数不带任何内容或可迭代。 python中的字符串是可迭代的:
>>> [c for c in "string"]
['s', 't', 'r', 'i', 'n', 'g']
通过将字符串放入另一个可迭代的字符串中,例如一个列表-["string"]
,set
将构造一个包含列表唯一元素的集合。