Python 列表理解与集合理解

Python 列表理解与集合理解,python,Python,我有以下程序。我试图理解列表理解和集合理解: 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 compr

我有以下程序。我试图理解列表理解和集合理解:

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[0]for word in word\u list}
大括号


我以前没有详细见过set。

大括号用于词典和set理解。创建哪一个取决于是否提供关联值,如以下(3.4):

>a={x代表范围(3)中的x}
>>>a
{0, 1, 2}
>>>类型(a)
>>>a={x:x表示范围(3)内的x}
>>>a
{0: 0, 1: 1, 2: 2}
>>>类型(a)
是未重复元素的无序、可变集合

在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])

花括号告诉Python您想要一个集合,就像尖括号告诉Python您想要一个列表一样。只要读一读片场的理解。@tdelaney-我以为花括号是字典的意思。(不是集合?)这里概述了语法“从python3.6开始,集合是有序的”是什么意思?你能分享这个链接吗?我找不到文件上说集合已订购。说这是一个“无序的收藏”。@oldwooki,事实上,你是对的。我不知道为什么,但我错了,或者说是用格言推断出来的,让我来复述一下。谢谢你的指点!!
>>> {x for x in [1,1,5,5,3,3]}
set([1, 3, 5])