python基礎教程 列表

2021-07-24 08:19:43 字數 4665 閱讀 4378

列表不同於元組和字串,列表是可變的,可以改變列表的內容,並且列表有很多有用的,專門的方法。
字串不能像列表一樣被修改,所以有時根據字串建立列表會很有用。list函式可以實現這個操作:

list(『hello』)

[『h』, 『e』, 『l』, 『l』, 『o』]

需要注意的是,list函式適用於所有型別的序列,而不只是字串。

x = [1,1,1]

x[1] = 2

x

[1, 2, 1]

注:不能為乙個不存在的元素進行賦值。

names = [『alice』, 『beth』, 『cecil』, 『dee-dee』, 『earl』]

del names[2]

names

[『alice』, 『beth』, 『dee-dee』, 『earl』]

name = list(『perl_1』)

name

[『p』, 『e』, 『r』, 『l』, 『_』, 『1』]

name[2:] = list(『ar』)

name

[『p』, 『e』, 『a』, 『r』]

name = list(『perl_1』)

name[2:4] = list(『ar』)

name

[『p』, 『e』, 『a』, 『r』, 『_』, 『1』]

分片賦值,可以適用與原序列不等長的序列將分片替換

name[1:] = list(『ython』)

name

[『p』, 『y』, 『t』, 『h』, 『o』, 『n』]

numbers = [1,5]

numbers[1:1] = [2,3,4]

numbers

[1, 2, 3, 4, 5]

//如此賦值需要等長

numbers[::2] = [none] * (len(numbers) // 2 + len(numbers) % 2)

numbers

[none, 2, none, 4, none]

numbers[-2::-2] = [none] * (len(numbers) // 2)

numbers

[none, none, none, none, none]

物件.方法(引數)

[1, 2, 3, 4]

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

count方法統計某個元素在列表中出現的次數

to』,』be』,』or』,』not』,』to』,』be』].count(『to』)

x = [[1,2],1,1,[2,1,[1,2]]]

[1,2] in x

true

x = [[1,2],1,1,[2,1,[1,2,3]]]

[1,2,3] in x

false

x.count(1)

x.count([1,2])

extend方法可以在列表的末尾一次性追加另乙個序列中的多個值。

a = [1,2,3]

b = [4,5,6]

a.extend(b)

a

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

這個操作看起來很像連線操作(+),兩者的主要區別在於:extend方法修改了被擴充套件的序列。而連線操作則不是,他會返回乙個全新的列表:

a = [1,2,3]

b = [4,5,6]

a + b

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

a

[1, 2, 3]

index方法用於從列表中找出某個值第乙個匹配項的索引位置:

kinghts = [『we』, 『are』, 『the』, 『knights』, 『who』, 『say』, 『ni』]

kinghts.index(『who』)

kinghts.index(『herring』)

traceback (most recent call last):

file 「」, line 1, in

valueerror: 『herring』 is not in list

kinghts[4]

『who』

insert用於將物件插入到列表中:

numbers = [1,2,3,4,5,6,7]

numbers.insert(3,』four』)

numbers

[1, 2, 3, 『four』, 4, 5, 6, 7]

x = [1,2,3]

x.pop()

[1, 2, 3]

x = [『to』,』be』,』or』,』not』,』to』,』be』]

x.remove(『be』)

x

[『to』, 『or』, 『not』, 『to』, 『be』]

可以看到:只有第一次出現的值被移除了。沒有出現在列表中的值,不會被移除。值得注意的是,remove是乙個沒有返回值的原位置改變方法。他修改了列表卻沒有返回值,這與pop正好相反。

reverse方法將列表中的元素反向存放。

x = [『to』,』be』,』or』,』not』,』to』,』be』]

x.reverse()

x

[『be』, 『to』, 『not』, 『or』, 『be』, 『to』]

此方法也改變了列表但不返回值。

注:如果需要對乙個序列進行反向迭代(列表是序列的一種),可以使用reversed函式。這個函式返回乙個迭代器物件(iterator),可以使用list()函式把返回的物件轉換成列表:

x = [1,2,3]

list(reversed(x))

[3, 2, 1]

x//x值沒改變

[1, 2, 3]

sort方法用於在原位置對列表進行排序,預設生序。sort返回的還是原來的列表,而不是乙個以排序的列表副本。

需要注意的是,sort方法返回的是空值。

x = [4,5,1,6,12,36,123,2,3,3]

x.sort()

x

[1, 2, 3, 3, 4, 5, 6, 12, 36, 123]

y = x.sort()//不要這麼做

print(y)

none

y = x//如此賦值,x和y指向同乙個列表

y.reverse()

y

[123, 36, 12, 6, 5, 4, 3, 3, 2, 1]

x

[123, 36, 12, 6, 5, 4, 3, 3, 2, 1]

可以使用如下方法複製列表:

第一種:y = x[:]

第二種:y = sorted(x)//sorted函式總返回乙個列表

如此再更改y時,可以保證x不被改變。

另:如果想要逆向排序,可以先使用sort方法,再使用reverse方法

如果希望元素能按照特定的方式進行排序,可以通過給sort方法傳引數來實現。

x = [『asdfasdf』, 『dsf』, 『ertsh』, 『wrtehdfnxcjjh』, 『hdhfgjjkfddfvsdgfd』]

x.sort(key = len)

x

[『dsf』, 『ertsh』, 『asdfasdf』, 『wrtehdfnxcjjh』, 『hdhfgjjkfddfvsdgfd』]\

x.sort(key = len, reverse = true)

x

[『hdhfgjjkfddfvsdgfd』, 『wrtehdfnxcjjh』, 『asdfasdf』, 『ertsh』, 『dsf』]

Python 基礎教程之列表元組

最近自學了python,現將一些知識點整理下,免的忘掉。0xaf表示16進製制,十進位制值為175,010表示八進位制,十進位制值為 8 獲取使用者輸入為input和raw inpu函式 input 請輸入 得到的結果為原來的輸入的型別,想輸字串得輸 string raw input 請輸入 輸入的...

python基礎教程

乙個簡單的客戶機 import socket s socket.socket host socket.gethostname port 1234 s.bind host,port s.listen 5 while true c,addr s.accept print got connection f...

Python基礎教程

本教程不包括python的安裝,ide採用spyder pytho2.7 1.print pow 2,3 8 print 2 3 8這裡pow函式表示乘方,與 功能相同。2.abs 10 10abs函式用來求乙個數的絕對值。3.round 0.6 1.0 round 0.4 0.0round函式將浮...