python數據類型-列表創建和操作
a)? 創建列表
b)? 基本操作
c)? 遍歷
與其說? 列表? 它是一個數據類型,用起來 更像一個靈活多變的數據存儲方案
?
創建列表
創建列表例子
player?=?‘mao?80?50‘ ? mao?=?‘100?60?0‘ ? zou?=?‘100?100?100‘ ? player1?=?[‘mao‘,100,50] ? mao?=?[100,60,0] ? type?(mao) list ? list1?=?[] ? type(list1) list
表達含義
先定義一個 字符串類型的數據 用來存儲 遊戲 用戶名 --生命 --血值
?分別為‘mao 80 50 ‘
比如 mao 是角色名字 80生命值 50是等級
是可以在一個大字符串當中,有效的分段存儲,
但是字符串取數據的時候 ,就會就問題
比如生命力是 100 可是被攻擊後就就80血???
從字符串取數據的時候要分片,也就是切割。通過索引的形式,而這裏用字符串取值的時候 每個角色取值的名字 長短不一,所以幾個字符代表名字 ,是不可以的,血的值 也是經常變換的 所以顯然字符串該被淘汰了。
換一種數據 我們存儲用戶的成績
?
如 mao 的 成績是 ‘100 -60 -0‘
zou的成績 為全是滿分‘100--100--100‘ 分
把這個方向放大 ,比如 這個班裏 有60個同學
那你就有60個這個的字符串。
那你就要註意每個字符串的長度 每個元素的長度,都是不一樣的
所以不能方便的把裏面的值 取出來。
這裏時候就要用到列表了[ ],
數據類型 列表 就有它的用武之地了。
?
上面的都是幾組元素 相對於某個角色來說 這是它的 三個元素 ,相對某個同學來說這是它的三個評分
所以這個時候 就要用到 列表存儲這樣的數據
?
列表存儲 用 方括號 隔開就行了[]是什麽值就 存什麽值
理論上 列表是 可以存儲 對象的? ,如 字符串 數字
切忌 變量的名字 不要用關鍵字
?
player1 用列表的方式 表達 = [‘milo’角色名稱,100的生命力 50的攻擊值]
milo 列表的方式 表達 = [100,60,0]
查看milo的值 為 list 列表形式
ilst1 = [] 代表 等於 一個空的列表 後面 用到的時候可以選擇帶入值 進去
type (ilst1) 查看類型 ,空的也是為列表的。
?
記住不能定義變量名字為list 不能為 關鍵字
如果你定義一個為 list的話,那你的函數就用不了,
比如字符串 轉換成 整數的時候 會到函數,所以這裏面 變量的名字一定要註意
?
創建列表無非是 創建幾個元素,用逗號隔開。裏面可以是任何一個值 甚至是函數 一個類。
操作列表
列表的操作跟 字符串操作很相似
不管有幾個值,反正是由逗號隔開的,列表內一共為12 3 個值
字符串 我們 定義好了之後,都是是從0開始 0123456 每一個字符,
每一個字符都有個索引,索引是on0開始的,至於為什麽從0開始
科普 是因為最早期的時候,計算機都為0? 1,存儲空間寶貴,每一個字節(byte)都是要加以利用,最小的都是從0開始,0不能浪費。從那個時候開始,計算機裏用0變成了一個傳統 一直到現在。
取列表裏面的值方法,因列表的值的方法 和字符串值的方法都是一樣的。
應為 字符串 和列表 在這裏面 統稱叫做序列類型的數據
?
字符串可以通過索引取值,列表也可以
通過列表取值例子
?mao [100,?60,?0] ? player1 [‘mao‘,?100,?50] ? player1[0] ‘mao‘ ? player1[1] 100 ? player1[:3] [‘mao‘,?100,?50] ? player1[:2] [‘mao‘,?100]
表達含義
mao列表
列表包含100,60,0
?
Player1列表
包含’mao’,100,50
?
通過索引的方式取player1列表值0
返回值為’mao’
?
通過索引的方式取player1列表值0
返回值為100
?
通過縮影的方式取值player1[:3]結束值到3
返回列表類一直到元素3的值 ’mao’,100,50]
?
通過縮影的方式取值player1[:2]結束值到2
返回列表類一直到元素2的值 [’mao’,100]
列表拼接
mao?+?player1 [100,?60,?0,?‘mao‘,?100,?50] ? mao?*?3 [100,?60,?0,?100,?60,?0,?100,?60,?0]
表達含義
列表mao + 列表player1
兩個列表相加起來 就是一個大列表
返回值 為兩個列表拼接到一起成為一個大的列表。
?
列表 mao * 3
返回值 mao列表裏面的值 重復3的列表
?
列表的操作 可以跟字符串 去類比的記憶。
提到一個詞 序列
列表跟字符串一樣都是有序的排列,都叫做序列
?
編列列表
如果想把兩個列表裏面的值 全部取出來。
在字符串裏面可以 用 for 循環 叠代編列 把 值取出來
既然列表跟字符串的操作都是相似的 列表可以用
編列例子
for?i?in?‘128r‘: ?????print(i) ? 1 2 8 R ? ? for?i?in?mao: ?????print(i) ? 100 60 0 ? In?[23]:?mao Out[23]:?[100,?60,?0]
表達含義
for 叠代取字符串裏面的值
循環送代打印出來
1
2
8
R
?
?
下面是列表的遍歷表示方法
把每一個值都取出來
For 循環送代 mao 列表
循環送代打印值
100
60
0
本章成果
知道創建列表,操作列表索引的概念。類比字符串來記憶
列表的操作 都是根據 數據存儲方式來進行的操作
python數據類型-列表創建和操作