字典、列表、元祖、字符串的综合(2)
生活随笔
收集整理的這篇文章主要介紹了
字典、列表、元祖、字符串的综合(2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.利用負(fù)數(shù)作為索引項(xiàng)
python里面的字典可以用負(fù)數(shù)作為其索引項(xiàng),且-1表示最后一個(gè)元素
例如:
index = [1,2,3] print(index[-2]) #輸出結(jié)果為:22.列表的幾個(gè)操作
①‘+’操作符——用于連接兩個(gè)列表,生成一個(gè)新的列表
例如:
x = [1,2,3] y = [4,5,6] z = x + y print(z) #輸出結(jié)果為: [1,2,3,4,5,6]
②'*'操作符——將一個(gè)列表按給定的次數(shù)復(fù)制、生成一個(gè)新的列表
例如:
list_n = [1] * 4 print(list_n) #輸出結(jié)果為: [1,1,1,1]
3.列表數(shù)據(jù)類型的方法——列表的方法都沒有返回值
像max,min,len,list等python內(nèi)置的函數(shù),它們是有返回值的,而對于可變數(shù)據(jù)類型列表的方法,是沒有返回值的,它們直接修改列表
①extend方法
extend可以向列表的末尾添加可迭代的數(shù)據(jù),元祖,列表,集合字符串等都能添加
例如:
list_n = [1] * 4 list_n.extend('123') print(list_n) #輸出結(jié)果為: [1, 1, 1, 1, '1', '2', '3']②內(nèi)置函數(shù)sum,不是方法
t = [1,2,3] a = sum(t) print(a) #輸出結(jié)果為: #64.刪除列表元素
方法一? ——? pop
修改列表并返回被移除的元素,如果不提供索引的參數(shù),即括號里面是空的,則刪除和返回最后一個(gè)元素
例如:
a = [1,2,3,4,5,6,7,8,9] pop_1 = a.pop() pop_2 = a.pop(2) print(pop_1,pop_2) #輸出結(jié)果為: #9,3方法二 —— del
不返回被移除的值
a = [1,2,3,4,5,6,7,8,9] del a[8] del a[2] print(a) #輸出結(jié)果為: #[1,2,4,5,6,7,8]方法三 —— remove
remove不返回任何值,且傳入的參數(shù)是欲刪除元素的值
例如:
a = [1,2,3,4,5,6,7,8,9] a.remove(9) a.remove(3) print(a) #輸出結(jié)果為: #[1,2,4,5,6,7,8]另外使用del可以刪除多個(gè)元素
例如:
a = list(range(1,10)) del a[3:7] print(a) #輸出結(jié)果為: #[1,2,3,8,9]5.列表和字符串之間的互相轉(zhuǎn)換
字符串是一個(gè)字符序列,列表是一個(gè)值的序列,但是字符列表不同于字符串,
split()、join()、list()實(shí)現(xiàn)將列表和字符串之間相互轉(zhuǎn)換,例如:
string_1 = 'This is a test string' list_1 = string_1.split() print(list_1) #輸出結(jié)果為:['This','is','a','test','string'] string_2 = ','.join(list_1) print(string_2) #輸出結(jié)果為:'This,is,a,test,string' word = 'python' list_2 = list(word) print(list_2) #輸出結(jié)果為:['p','y','t','h','o','n']6.對象,別名,引用
當(dāng)兩個(gè)變量指向同一個(gè)對象時(shí),可以用is來判斷,
當(dāng)兩個(gè)變量值相同時(shí),可以用'=='或'<>'來判斷
例如:
a = 'python' b = 'python' print(b is a,b == a) #輸出結(jié)果為True,True, #當(dāng)兩個(gè)變量指向同一個(gè)對象時(shí),它們的值肯定相等c = [1,2,3] d = c e = [1,2,3] print(c is d , c == d) print(e is c , c == e) #輸出結(jié)果為:True,True #False,True當(dāng)兩個(gè)變量指向同一個(gè)可變對象時(shí),其中一個(gè)變量值的改變也會(huì)引起另一個(gè)值的改變
例如:
①直接將一個(gè)變量賦給另一個(gè)可變變量
a = [1,2,3] b = a b[0] = 4 print(a,b) #輸出結(jié)果為:[4,2,3],[4,2,3]②由實(shí)參傳遞給函數(shù)的形參時(shí):
def reference(b):b[0] = 9 a = [1,2,3] reference(a) print(a)#輸出結(jié)果為:[9,2,3]
總結(jié):我們可以將上面的b叫做a的別名,它們指向一個(gè)對象,如果其中一個(gè)改變,必定會(huì)引起另一個(gè)的改變
這種情況容易引起意想不到的錯(cuò)誤,如何避免嗯??
有以下幾種方法:
①list方法
a = [1,2,3] b = list(a) print (b is a,b == a) #輸出結(jié)果為:(False,True)②分片方法
a = [1,2,3] b = a[:] print(b is a ,b == a) #輸出結(jié)果為:(False,True)③copy庫的copy方法
import copy a = [1,2,3] b = copy.copy(a) print(b is a ,b == a) #輸出結(jié)果為:False,True c = [1,2,[1,2]] d = copy.copy(c) print(c[2] is d[2]) #輸出結(jié)果為True e = copy.deepcopy(c) print(c[2] is e[2]) #輸出結(jié)果為:False f = [1,2,[1,2,[1,2]]] g = copy.deepcopy(f) print(g[2][2] is f[2][2]) #輸出結(jié)果為:False
當(dāng)列表里面嵌套著列表時(shí),需要用deepcopy
總結(jié)
以上是生活随笔為你收集整理的字典、列表、元祖、字符串的综合(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字典、列表、元祖、字符串的综合(1)
- 下一篇: pygame的学习以及python的巩固