列表是一種存儲大量數據的存儲模型。編程
列表具備索引的概念,能夠經過索引操做列表中的數據。列表中的數據能夠進行添加、刪除、修改、查詢等操做。數據結構
建立列表: 變量名 = [數據1,數據2,...]spa
獲取列表數據: 變量名[索引]3d
修改列表數據: 變量名[索引] = 值 code
元組是一種存儲固定數據的存儲模型。cdn
元組具備索引的概念,能夠經過索引操做元組中的數據。元組中的數據可行查詢操做,但不能進行添加、刪除、修改操做。對象
建立元組: 變量名 = (數據1,數據2,...)blog
獲取元組數據: 變量名[索引]索引
元組中的數據若是是非引用類型數據,不容許修改字符串
元組中的數據若是是引用類型對象,該對象不容許替換,而對象的屬性值能夠發生改變
自動組包:將多個數據賦值給一個變量時,多個數據將包裝成一個元組,將元組賦值給變量,該過程稱爲自動組包。
應用場景:設置返回值爲多個值
return 1,2,3 等同於 return (1,2,3)
複製代碼
應用場景:動態字符串賦值傳值方式
print("座標%d,%d" % (10,20))
複製代碼
自動解包:將元組賦值給多個變量時,若是元組數據的數量與變量的數量相同,元組將被自動拆分紅多個值,並賦值給對應變量,該過程稱爲自動解包。
場景:多個變量接收返回值
a,b,c = func()等同於 a,b,c = (1,2,3)等同於a,b,c = 1,2,3
複製代碼
場景:動態字符串賦值取值方式
print(「座標%d,%d」 % (10,20)) 將10給第一個%d,將20給第二個%d
複製代碼
集合是一種存儲大量無序不重複數據的存儲模型。
集合沒有索引的概念。集合中的數據能夠進行添加、刪除等操做。
建立集合:
變量名 = {數據1,數據2,......}
複製代碼
字典是一種使用「鍵值對結構」存儲數據的存儲模型。
字典不具備索引的概念,字典使用鍵key代替索引,能夠經過鍵操做字典中存儲的數據value。字典能夠根據鍵key進行數據的添加、刪除、修改、查詢操做。
建立字典: 變量名 = {鍵1:值1,鍵2:值2,……}
添加數據: 變量名[鍵] = 值 (字典中沒有對應的鍵)
獲取數據: 變量名[鍵]
修改數據: 變量名[鍵] = 值 (字典中存在對應的鍵)
字典中的鍵是惟一的
1.當須要存儲少許數據,而且指望在編程期以最快的速度獲取單個數據, 推薦選擇字典。
2.當須要使用非對象格式保存單個對象的屬性值,推薦選擇字典。
for循環用於對數據存儲模型進行訪問遍歷
for 變量名 in 列表:
變量相關操做
複製代碼
建立連續的整數
格式1:range(m) 生成 0 到 m-1 的整數
格式2:range(m,n) 生成 m 到 n-1 的整數
格式3:range(m,n,s) 生成 m 到 n-1 的整數,整數間隔爲s
1.配合for循環構造指定次數的循環
for _ in range(..):
____循環執行的代碼
複製代碼
2.快速建立由連續的整數做爲數據的列表、元組、集合對象
list(range(..))
tuple(range(..))
set(range(..))
數據結構嵌套指一種數據結構中包含的數據是另外一種數據結構
獲取列表、元組或字符串中的局部數據
容器對象[開始索引:結束索引:步長]
省略開始索引:默認開始索引爲0
範例:list1[:5:1] 等同於 list1[0:5:1]
省略結束索引:默認結束索引爲數據總量
範例:list1[0::1] 等同於 list1[0:len(list1):1]
省略步長:每次遞增索引數爲1
範例:list1[0:5:] 等同於 list1[0:5:1]
負數步長: 反向操做/反向步長操做,須要開始索引、結束索引逆序輸入
範例:list1[5:0:-1]
常見格式:
範例:list1[:5:] 獲取索引5以前的數據(不含5)
範例:list1[4::] 獲取索引4以後的數據(含4)
複製代碼
for 變量名 in 列表:
變量相關操做
else:
循環正常運行結束後執行的操做
複製代碼
1.若是for循環中執行了break語句,則else中的代碼將不執行
2.while循環一樣具備while…else語法格式
基礎語法格式: 循環變量 for 循環
範例:list1 = [data for data in range(5)]
數據處理語法格式: 表達式 for循環
範例:list1 = [data*5 for data in range(5)]
數據過濾語法格式: 表達式 for循環 if判斷
範例:list1 = [data for data in range(5) if data > 200]
複製代碼
推導式能夠快速生成數據存儲結構中的數據
範例1:建立包含1到100全部整數的列表
list1 = [data for data in range(1,101)]
範例2:建立包含1到10的平方和的列表
list2 = [data**2 for data in range(1,11)]
範例3:建立字典,key從1到5,value是key的平方
dict1 = [(data,data**2) for data in range(1,6)]
複製代碼