Answers:
如果您具有可散列对象的列表(文件名可能是字符串,那么它们应该算在内):
lst = ['foo.py', 'bar.py', 'baz.py', 'qux.py', Ellipsis]
您可以直接构造集合:
s = set(lst)
实际上,set
将这种方式与任何可迭代对象一起使用! (鸭子打字不好吗?)
如果要迭代进行:
s = set()
for item in iterable:
s.add(item)
但是很少需要这样做。我只提到它是因为该set.add
方法非常有用。
y = set(x)
最直接的解决方案是:
s = set(filelist)
原始代码中的问题是未将值分配给集合。这是您的代码的固定版本:
s = set()
for filename in filelist:
s.add(filename)
print(s)