繼續更新,能夠經過 www.readwithu.com/ 來看以前的文章。python
Python 內置的一種數據類型是列表:list。 list 是一種有序的集合,能夠隨時添加和刪除其中的元素。安全
建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可,且列表的數據項不須要具備相同的類型app
list1=['兩點水','twowter','liangdianshui',123]複製代碼
使用下標索引來訪問列表中的值,一樣你也可使用方括號的形式截取字符函數
list1=['兩點水','twowter','liangdianshui',123]
# 經過索引來訪問列表
print(list1[2])
# 經過方括號的形式來截取列表中的數據
print(list1[0:2])複製代碼
輸出的結果:ui
能夠經過索引對列表的數據項進行修改或更新,也可使用 append() 方法來添加列表項。spa
list1=['兩點水','twowter','liangdianshui',123]
print(list1)
# 經過索引對列表的數據項進行修改或更新
list1[2]=456
print(list1)
# 使用 append() 方法來添加列表項
list1.append('hello');
print(list1)複製代碼
輸出的結果:3d
使用 del 語句來刪除列表的的元素code
list1=['兩點水','twowter','liangdianshui',123]
print(list1)
# 使用 del 語句來刪除列表的的元素
del list1[3]
print(list1)複製代碼
輸出的結果:cdn
列表對 + 和 的操做符與字符串類似。+ 號用於組合列表, 號用於重複列表。對象
Python 表達式 | 結果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 計算元素個數 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 組合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 複製 |
3 in [1, 2, 3] | True | 元素是否存在於列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
函數&方法 | 描述 |
---|---|
cmp(list1, list2) | 比較兩個列表的元素 |
len(list) | 列表元素個數 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 將元組轉換爲列表 |
list.append(obj) | 在列表末尾添加新的對象 |
list.count(obj) | 統計某個元素在列表中出現的次數 |
list.extend(seq) | 在列表末尾一次性追加另外一個序列中的多個值(用新列表擴展原來的列表) |
list.index(obj) | 從列表中找出某個值第一個匹配項的索引位置 |
list.insert(index, obj) | 將對象插入列表 |
list.pop(obj=list[-1]) | 移除列表中的一個元素(默認最後一個元素),而且返回該元素的值 |
list.reverse() | 反向列表中元素 |
list.sort([func]) | 對原列表進行排序 |
最後經過一個例子來熟悉瞭解 List 的操做
例子:
#-*-coding:utf-8-*-
#-----------------------list的使用----------------------------------
# 1.一個產品,須要列出產品的用戶,這時候就可使用一個 list 來表示
user=['liangdianshui','twowater','兩點水']
print('1.產品用戶')
print(user)
# 2.若是須要統計有多少個用戶,這時候 len() 函數能夠獲的 list 裏元素的個數
len(user)
print('\n2.統計有多少個用戶')
print(len(user))
# 3.此時,若是須要知道具體的用戶呢?能夠用過索引來訪問 list 中每個位置的元素,索引是0從開始的
print('\n3.查看具體的用戶')
print(user[0]+','+user[1]+','+user[2])
# 4.忽然來了一個新的用戶,這時咱們須要在原有的 list 末尾加一個用戶
user.append('茵茵')
print('\n4.在末尾添加新用戶')
print(user)
# 5.又新增了一個用戶,但是這個用戶是 VIP 級別的學生,須要放在第一位,能夠經過 insert 方法插入到指定的位置
# 注意:插入數據的時候注意是否越界,索引不能超過 len(user)-1
user.insert(0,'VIP用戶')
print('\n5.指定位置添加用戶')
print(user)
# 6.忽然發現以前弄錯了,「茵茵」就是'VIP用戶',所以,須要刪除「茵茵」;pop() 刪除 list 末尾的元素
user.pop()
print('\n6.刪除末尾用戶')
print(user)
# 7.過了一段時間,用戶「liangdianshui」不玩這個產品,刪除了帳號
# 所以須要要刪除指定位置的元素,用pop(i)方法,其中i是索引位置
user.pop(1)
print('\n7.刪除指定位置的list元素')
print(user)
# 8.用戶「兩點水」想修改本身的暱稱了
user[2]='三點水'
print('\n8.把某個元素替換成別的元素')
print(user)
# 9.單單保存用戶暱稱好像不夠好,最好把帳號也放進去
# 這裏帳號是整數類型,跟暱稱的字符串類型不一樣,不過 list 裏面的元素的數據類型是能夠不一樣的
# 並且 list 元素也能夠是另外一個 list
newUser=[['VIP用戶',11111],['twowater',22222],['三點水',33333]]
print('\n9.不一樣元素類型的list數據')
print(newUser)複製代碼
另外一種有序列表叫元組:tuple 。tuple 和 list 很是相似,可是 tuple 一旦初始化就不能修改。那麼不能修改是指什麼意思呢?
tuple 不可變是指當你建立了 tuple 時候,它就不能改變了,也就是說它也沒有 append(),insert() 這樣的方法,但它也有獲取某個索引值的方法,可是不能賦值。那麼爲何要有 tuple 呢?那是由於 tuple 是不可變的,因此代碼更安全。因此建議能用 tuple 代替 list 就儘可能用 tuple 。
元組建立很簡單,只須要在括號中添加元素,並使用逗號隔開便可。
tuple1=('兩點水','twowter','liangdianshui',123,456)
tuple2='兩點水','twowter','liangdianshui',123,456複製代碼
建立空元組
tuple3=()複製代碼
元組中只包含一個元素時,須要在元素後面添加逗號
tuple4=(123,)複製代碼
若是不加逗號,建立出來的就不是 tuple (元組),而是指 123
這個數了,這是由於括號 ()既能夠表示 tuple,又能夠表示數學公式中的小括號,這就產生了歧義,所以,Python 規定,這種狀況下,按小括號進行計算,計算結果天然是 123
。具體看下圖 tuple4 和 tuple5 的輸出值
元組下標索引從0開始,能夠進行截取,組合等。
tuple(元組)可使用下標索引來訪問元組中的值
#-*-coding:utf-8-*-
tuple1=('兩點水','twowter','liangdianshui',123,456)
tuple2='兩點水','twowter','liangdianshui',123,456
print(tuple1[1])
print(tuple2[0])複製代碼
輸出的結果:
上面不是花了一大段來講 tuple 是不可變的嗎?這裏怎麼又來修改 tuple (元組) 了。那是由於元組中的元素值是不容許修改的,但咱們能夠對元組進行鏈接組合,還有經過修改其餘列表的值從而影響 tuple 的值。
具體看下面的這個例子:
#-*-coding:utf-8-*-
list1=[123,456]
tuple1=('兩點水','twowater','liangdianshui',list1)
print(tuple1)
list1[0]=789
list1[1]=100
print(tuple1)複製代碼
輸出的結果:
('兩點水', 'twowater', 'liangdianshui', [123, 456])
('兩點水', 'twowater', 'liangdianshui', [789, 100])複製代碼
能夠看到,兩次輸出的 tuple 值是變了的。咱們看看 tuple1 的存儲是怎樣的。
能夠看到,tuple1 有四個元素,最後一個元素是一個 List ,List 列表裏有兩個元素,當咱們把 List 列表中的兩個元素 124
和 456
修改成 789
和 100
的時候,從輸出來的 tuple1 的值來看,好像確實是改變了,但其實變的不是 tuple 的元素,而是 list 的元素。tuple 一開始指向的 list 並無改爲別的 list,因此,tuple 所謂的「不變」是說,tuple 的每一個元素,指向永遠不變。注意是 tupe1 中的第四個元素仍是指向原來的 list ,是沒有變的。
tuple 元組中的元素值是不容許刪除的,但咱們可使用 del 語句來刪除整個元組
#-*-coding:utf-8-*-
tuple1=('兩點水','twowter','liangdianshui',[123,456])
print(tuple1)
del tuple1複製代碼
與字符串同樣,元組之間可使用 + 號和 * 號進行運算。這就意味着他們能夠組合和複製,運算後會生成一個新的元組。
Python 表達式 | 結果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 計算元素個數 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 鏈接 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 複製 |
3 in (1, 2, 3) | True | 元素是否存在 |
for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
方法 | 描述 |
---|---|
cmp(tuple1, tuple2) | 比較兩個元組元素 |
len(tuple) | 計算元組元素個數 |
max(tuple) | 返回元組中元素最大值 |
min(tuple) | 返回元組中元素最小值 |
tuple(seq) | 將列表轉換爲元組 |