列表不同於元組和字串,列表是可變的,可以改變列表的內容,並且列表有很多有用的,專門的方法。
字串不能像列表一樣被修改,所以有時根據字串建立列表會很有用。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
truex = [[1,2],1,1,[2,1,[1,2,3]]]
[1,2,3] in x
falsex.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):kinghts[4]file 「」, line 1, in
valueerror: 『herring』 is not in list
『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)
noney = 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函式將浮...