Python學習(三) 列表和元組

2021-08-22 11:51:08 字數 4476 閱讀 5031

序列是python中最基本的一種資料結構,序列上的每乙個元素都會指定乙個數字(或稱之為索引),以0開頭類推。

在python的6個序列中,列表和元祖是最常見的。

序列都可以進行的操作包括 : 索引,切片 , 加 , 乘 , 檢查成員。

除此之外,序列都可以進行確定序列長度,確定最大元素和最小元素的方法。

python中的元素都是任意的(數字,字串,子列表,子元祖,字典, 布林值 等)都可以,只要用逗號分隔開就行。

li1 = ["jdk" , 31 , "dhufe" ]

li2 = [["dew",23] , 23 , "fuhe"]

li3 = [("few", 34 , "fefe") , "fef"]

1. 通過索引的方法進行訪問。

print(li1[0] , li2[1])

name = li[1]

2. 通過切片的方式進行訪問。

print(li[0:1])

for it in li[:2] ####開頭沒有指明,預設從開頭開始

print(it)

for it in li[1:] #### 末尾沒有指明,預設訪問到結尾

print(it)

可以直接對列表裡面的值進行修改。

li2[0] = "dew"

li1[2] = 213

通過 del 刪除 可採用 del+索引(或者切片)的方法

用方法 remove()進行刪除

用方法 pop() 進行移除

del li1[0] 

del li2[0:1] ### 採用 del 方法進行刪除

li1.remove(31) #### 採用 remove() 的方法進行移除,引數為列表中的目標元素

delpoint = li1.pop(2) #### 採用 pop() 的方法進行移除,引數為列表的索引,移除的元素返還回來,注意其中的引數不能加入切片

使用 「+」 和 「*」 等符號 :

python表示式

結果描述

len([1,2,3])

3計算列表長度

[1,2,3] + [4,5,6]

[1,2,3,4,5,6]

組合["hi"] * 2

["hi" , "hi"]

重複3 in [1,2,3]

true

元素是否存在於表中

for x in [1,2,3] : print x

1 2 3

迭代索引可以取負數,表示從0號開始從後往前取

python 表示式

結果描述

li = [1 , 2, 3, 4]

print(li[-2])

3以1為0,往從後開始倒數

切片的使用(注意切片括號左邊代表閉區間,右邊代表開區間)

python 表示式

結果描述

li = [1,2,3,4,5,6]

li[2:4]

3,4從索引2到索引3

li[:3]

0,1,2,3

沒有指定索引開頭,預設從頭(0號索引)開始引入

li[4:]

5,6沒有指定索引結尾,預設是讀取到最後

# in 元素是否在列表中

cmp(list1,list2) 較兩個列表的元素

len() 列表元素的個數

mix() 列表中元素的最大值

min() 列表中元素的最小值

list(seq) 將元組轉換為列表

list.count() 統計某個元素在列表中出現的次數

list.extend(seq) 在列表末尾一次性追加另乙個序列的多個元素

list.index() 從列表中找出某個值第乙個匹配項的索引位置

list.pop() 移除列表中的乙個元素

list.remove() 移除列表中某個值的第乙個匹配項

list.reverse() 反向列表中元素

list.sort() 將原列表進行排序

元組和列表非常類似,差別在於元組的第一級元素是不可改變的。

元組採用小括號進行表示,括號中元素與元素之間採用逗號分隔開。

tup1 = ('physics', 'chemistry', 1997, 2000)

tup2 = (1, 2, 3, 4, 5 )

特別注意 : 當元組中只有乙個元素是,需要在元素後面加乙個括號 :

tu = ("yuanzu",)
元組的訪問和列表一樣,可以採用索引和切片。

元組的第幾季元素不可修改,但是可以進行拼接 :

tup1 = (12, 34.56)

tup2 = ('abc', 'xyz')

# 以下修改元組元素操作是非法的。

# tup1[0] = 100

# 建立乙個新的元組

tup3 = tup1 + tup2

print tup3

########### 執行結果 ###########

(12, 34.56, 'abc', 'xyz')

特別注意 :元組不可修改的只是一級元素 :

tu = ([["hefuhew","fewrf"],"fhewhf",1213])

tu[0][0] = 123

print(tu)

上面這段**是正確的,我們修改的並非是元組裡面的元素,而是元組中列表的元素,而列表的元素是可以修改的。

元組中的元素是不可刪除的,但是整個元組卻可以直接刪除。

tup = ('physics', 'chemistry', 1997, 2000)

print tup

del tup

print "after deleting tup : "

print tup

###### 上面這段**是合法的 ##################

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() 計算元組元素的個數

max() 返回元組中元素的最大值

min() 返回元組中元素的最小值

tuple(seq) 將列表轉換為元組

列表的遍歷 :

採用for迴圈進行遍歷

animals = ["tiger","cat","baozi"]

for it in animals :

print(it)

print(it+" looks like a cat!")

print("all of these animals look like a cat!")

採用rang()函式來生成列表

# # ######   使用函式rang()

for value in range(1,5) : ##隨機生成1-4的數字 括號左邊是閉區間,右邊是開區間

print(value)

# # ###### 使用rang()建立數字列表

even_numbers = list(range(1,6)) ### 按區間生成任意數字

print(even_numbers)

numbers = list(range(2,11,2)) ### 按步數生成任意數字

print(numbers)

squares =

for value in range(1,11) : ### 使用rang()生成1~10的平方

print(squares)

列表解析(可以使得**更加簡潔)

# # #####   列表解析   前面乙個是放到列表中的引數,後面乙個是提取引數的區間

squares = [value**2 for value in range(1,11)]

print(squares)

python學習2 列表和元組

二列表和元組 2.1 序列 python中最基本的資料結構是序列。python有6種內建序列 列表 元組 字串 unicode字串 buffer物件和xrange物件。列表和元組的主要區別 列表可以修改,元組不可以修改 通用的序列操作 索引 分片 加 乘 檢查某個元素是否屬於序列的成員 計算序列長度...

python學習二 列表和元組

一.序列 在python中,最基本的資料結構是序列 sequence 序列中的每個元素被分配乙個序號 即元素的位置,也成為索引。python中包含6中內建的序列,列表元組 字串unicode字串 buffer物件 xrange物件 除了序列,python中還有一種名為容器的資料結構,序列和對映 字典...

Python學習之路五 列表和元組

python中包含6種內建的序列,列表 元組 字串 unicode字串 buffer物件和xrange物件。列表和元組的主要區別在於,列表可以修改而元組 字串則不能。因此在需要操作一組數值的時候,序列很好用,如果這組數值需要改變則可以使用列表,不改變的話可以使用元組。序列 如列表和元組 和對映 如字...