如何在Python中构build一个列表项?
我有一个在Python list的文件名list ,我想要构build一个所有的文件名。 
 filelist=[] for filename in filelist: set(filename) 
这似乎并不奏效。 这怎么办?
如果你有一个可哈希对象列表(文件名可能是string,所以他们应该算):
 lst = ['foo.py', 'bar.py', 'baz.py', 'qux.py', Ellipsis] 
你可以直接构造集合:
 s = set(lst) 
 事实上, set将以任何可迭代的对象这种方式工作!  (鸭子打字不好?) 
如果你想迭代地做:
 s = set() for item in iterable: s.add(item) 
 但是很less需要这样做。 我只提到它,因为set.add方法非常有用。 
最直接的解决scheme是这样的:
  s = set(filelist) 
你原来的代码中的问题是这些值没有被分配给这个集合 。 以下是您的代码的固定版本:
  s = set() for filename in filelist: s.add(filename) print(s) 
这是另一个解决scheme:
 >>>list1=["C:\\","D:\\","E:\\","C:\\"] >>>set1=set(list1) >>>set1 set(['E:\\', 'D:\\', 'C:\\']) 
在这段代码中,我使用set方法将它变成一个集合,然后从列表中删除所有重复的值
你可以做
 my_set = set(my_list) 
或者,对于Python 3,
 my_set = {*my_list} 
从列表中创build一个集合。 相反,你也可以这样做
 my_list = list(my_set) 
或者,对于Python 3,
 my_list = [*my_set] 
从一个集合创build一个列表。
请注意,列表中元素的顺序在将列表转换为集合时通常会丢失,因为集合本身是无序的。 (但是CPython中的一个例外似乎是列表只包含非负整数,但是我认为这是CPython中实现集合的结果,而且这种行为在不同的Python实现中可能会有所不同)。