集合是一種可變的無序的容器.函數
x = {1,2,3} #第一種方法,使用{} x = set([2,4,5]) #第二種方法,使用強制類型轉換
相似數學中的集合的肯定性,集合描述得很清楚,不存在不能判斷一個元素是否在一個集合中,具體來講就是in或not in運算符不會得不到肯定的結果.spa
所以不能經過下標訪問.
subscriptable就是能夠經過下標訪問的.這裏提示"not subscriptable".3d
沒有重複元素.code
包括==,!=,判斷子集,真子集,超集,真超集,交集與並集,差集,對稱差分.對象
能夠經過add,remove改變集合自己.
另外有不可變集合frozenset:blog
字典是一種可變的無序容器,每一個值都有本身對應的鍵,是一個映射結構,本質上是一個以鍵爲元素的集合.圖片
使用{},鍵與值用:分隔,鍵值對用逗號分隔.ip
x = {'aa':1,'bb':2,'cc':3}
def func(arg1,**arg2): print(arg1) print(arg2) func('a',a=1,b=2,c=3,d=4)
迭代器能夠做爲next()的參數被調用,不斷返回下一個值.rem
能夠直接做用與循環語句的對象,對於for循環是in後的對象.判斷一個對象是不是可迭代對象能夠利用isinstance()與Iterable.數學
from collections import Iterable isinstance([1,2,3],Iterable)
使用iter():
生成器是一個函數,不過相比起普通函數,返回的是迭代器.
生成器用的不是return,而是yield,另外生成器有惰性計算的特性,調用生成器時不會當即執行它,會在調用每一個元素時才進行計算.
def gen(): x = range(-1,8) for i in x: yield i+2 for x in gen(): print(x,end = ' ') print()