草根學Python(三)List 和 Tuple

前言

繼續更新,能夠經過 www.readwithu.com/ 來看以前的文章。python

目錄

草根學Python(三) List 和 Tuple
草根學Python(三) List 和 Tuple

1、List(列表)

Python 內置的一種數據類型是列表:list。 list 是一種有序的集合,能夠隨時添加和刪除其中的元素。安全

一、建立 List(列表)

建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可,且列表的數據項不須要具備相同的類型app

list1=['兩點水','twowter','liangdianshui',123]複製代碼

二、訪問 List(列表)中的值

使用下標索引來訪問列表中的值,一樣你也可使用方括號的形式截取字符函數

list1=['兩點水','twowter','liangdianshui',123]
# 經過索引來訪問列表
print(list1[2])
# 經過方括號的形式來截取列表中的數據
print(list1[0:2])複製代碼

輸出的結果:ui

訪問 List(列表)中的值
訪問 List(列表)中的值

三、更新 List(列表)

能夠經過索引對列表的數據項進行修改或更新,也可使用 append() 方法來添加列表項。spa

list1=['兩點水','twowter','liangdianshui',123]
print(list1)
# 經過索引對列表的數據項進行修改或更新
list1[2]=456
print(list1)
# 使用 append() 方法來添加列表項
list1.append('hello');
print(list1)複製代碼

輸出的結果:3d

更新 List(列表)
更新 List(列表)

四、刪除 List(列表)

使用 del 語句來刪除列表的的元素code

list1=['兩點水','twowter','liangdianshui',123]
print(list1)
# 使用 del 語句來刪除列表的的元素
del list1[3]
print(list1)複製代碼

輸出的結果:cdn

刪除 List(列表)
刪除 List(列表)

五、List(列表)運算符

列表對 + 和 的操做符與字符串類似。+ 號用於組合列表, 號用於重複列表。對象

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 迭代

六、List (列表)函數&方法

函數&方法 描述
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)複製代碼

list的使用
list的使用

2、tuple(元組)

另外一種有序列表叫元組:tuple 。tuple 和 list 很是相似,可是 tuple 一旦初始化就不能修改。那麼不能修改是指什麼意思呢?

tuple 不可變是指當你建立了 tuple 時候,它就不能改變了,也就是說它也沒有 append(),insert() 這樣的方法,但它也有獲取某個索引值的方法,可是不能賦值。那麼爲何要有 tuple 呢?那是由於 tuple 是不可變的,因此代碼更安全。因此建議能用 tuple 代替 list 就儘可能用 tuple 。

一、建立 tuple(元祖)

元組建立很簡單,只須要在括號中添加元素,並使用逗號隔開便可。

tuple1=('兩點水','twowter','liangdianshui',123,456)
tuple2='兩點水','twowter','liangdianshui',123,456複製代碼

建立空元組

tuple3=()複製代碼

元組中只包含一個元素時,須要在元素後面添加逗號

tuple4=(123,)複製代碼

若是不加逗號,建立出來的就不是 tuple (元組),而是指 123 這個數了,這是由於括號 ()既能夠表示 tuple,又能夠表示數學公式中的小括號,這就產生了歧義,所以,Python 規定,這種狀況下,按小括號進行計算,計算結果天然是 123 。具體看下圖 tuple4 和 tuple5 的輸出值

建立tuple
建立tuple

二、tuple(元組)的索引

元組下標索引從0開始,能夠進行截取,組合等。

三、訪問 tuple (元組)

tuple(元組)可使用下標索引來訪問元組中的值

#-*-coding:utf-8-*-

tuple1=('兩點水','twowter','liangdianshui',123,456)
tuple2='兩點水','twowter','liangdianshui',123,456

print(tuple1[1])
print(tuple2[0])複製代碼

輸出的結果:

訪問 tuple
訪問 tuple

四、修改 tuple (元組)

上面不是花了一大段來講 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 的存儲是怎樣的。

修改tuple流程圖
修改tuple流程圖

能夠看到,tuple1 有四個元素,最後一個元素是一個 List ,List 列表裏有兩個元素,當咱們把 List 列表中的兩個元素 124456 修改成 789100 的時候,從輸出來的 tuple1 的值來看,好像確實是改變了,但其實變的不是 tuple 的元素,而是 list 的元素。tuple 一開始指向的 list 並無改爲別的 list,因此,tuple 所謂的「不變」是說,tuple 的每一個元素,指向永遠不變。注意是 tupe1 中的第四個元素仍是指向原來的 list ,是沒有變的。

五、刪除 tuple (元組)

tuple 元組中的元素值是不容許刪除的,但咱們可使用 del 語句來刪除整個元組

#-*-coding:utf-8-*-

tuple1=('兩點水','twowter','liangdianshui',[123,456])
print(tuple1)
del tuple1複製代碼

六、tuple (元組)運算符

與字符串同樣,元組之間可使用 + 號和 * 號進行運算。這就意味着他們能夠組合和複製,運算後會生成一個新的元組。

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) 將列表轉換爲元組
相關文章
相關標籤/搜索