我有以下程序。我正在尝试理解列表理解和设置理解
mylist = [i for i in range(1,10)]
print(mylist)
clist = []
for i in mylist:
if i % 2 == 0:
clist.append(i)
clist2 = [x for x in mylist if (x%2 == 0)]
print('clist {} clist2 {}'.format(clist,clist2))
#set comprehension
word_list = ['apple','banana','mango','cucumber','doll']
myset = set()
for word in word_list:
myset.add(word[0])
myset2 = {word[0] for word in word_list}
print('myset {} myset2 {}'.format(myset,myset2))
我的问题是为什么myset2的花括号 = word_list中的word {word [0]}。我之前未详细讨论过 set
答案 0 :(得分:11)
大括号用于字典和集合理解。创建哪一个取决于您是否提供相关值,如下面的(3.4):
>>> a={x for x in range(3)}
>>> a
{0, 1, 2}
>>> type(a)
<class 'set'>
>>> a={x: x for x in range(3)}
>>> a
{0: 0, 1: 1, 2: 2}
>>> type(a)
<class 'dict'>
答案 1 :(得分:3)
Set是一个无序的,可变的不重复元素集合。
在python中,您可以使用set()
来构建一个集合,例如:
set>>> set([1,1,2,3,3])
set([1, 2, 3])
>>> set([3,3,2,5,5])
set([2, 3, 5])
或使用集合理解,如列表理解,但使用花括号:
>>> {x for x in [1,1,5,5,3,3]}
set([1, 3, 5])