1. 程式人生 > >python3基礎(四)-列表元組字典

python3基礎(四)-列表元組字典

1、可變列表list,使用中括號[]表示

name=[1,2,3]
strlist=['a','b','c']
str=range(1,10)    #左閉右開,包含左邊不包含右邊。這個函式是取1-10之間的數為一個數組。

1)、增加:
增加一個元素:name.append("a")    #在列表後面追加一個元素
name.extend(strlist)    #將一個列表strlist內的元素依次追加到另外一個列表name之後
name.insert(1,“a”)    #在1號位插入字元'a',1號位原來的資料依次往後面移

2)、修改:
names[2]="mm"    #根據下標位,修改一個元素
names.reverse()    #將列表倒置,是直接修改列表
names.sort()排序,但是必須要確認陣列當中的元素是同個型別的。這個是升序
如果要降序則在sort裡面加個引數reverse=True,則names.sort(reverse=True)

3)、查詢:
name[0]    #通過下標位,可以獲取列表當中的元素
in       not in     #查詢一個元素在\不在一個數組當中
"mm" in names    #返回True
"mm" not in names   #返回False
names.index("mm")     #index返回一個元素的下標位
names.count("mm")    #count統計一個元素在陣列中出現幾次

4)、刪除:
del names    #刪除定義的變數
del names[1]    #刪除陣列當中的某個元素
deletedname=names.pop()    #不能接引數,這個是刪除列表的最後一個元素,並且返回這個元素
names.remove("mm")    #刪除一個具體的內容"mm",是內容而不是索引

2、不可變元組tuple,使用小括號()表示

跟列表是一樣的,不同的是元組內的元素不能修改,而且元組是用小括號表示的。元組申明好了後長度就固定了,元組和列表裡面的元素型別是可以不同的。

rang(1,10)是輸出一個1-9的列表,在python2當中c=rang(1,10)會直接把結果列表賦值給c,而在python3中卻變成懶載入了,也就是隻有當真正執行的時候才會賦值給c
rang函式一定是從小到大的數字序列。

3、字典set:使用大括號{}表示

鍵-值
stus={"name":"zs","age":33,"sex":"女"}
stus['name']或者stus.get("name")    #通過鍵來訪問和修改值,這兩個方法的區別是,第二個方法訪問的鍵不存在的時候,是不會報錯的。
stus['addr']='beijing'    #如果addr鍵不存在則新增,存在則修改值。
"name" in stus    #判斷鍵是否在字典裡面,name是key,而不是value,返回值為True或False
stus["name"]    #如果返回有結果則代表有。name是key,而不是value,如果有,則返回對應的值,沒有則會報錯。
del stus    #整個字典會刪了
del stus["sex"]    #只刪除一個內容

4、小知識

names=["a","b","c","d"]
enumerate(names, 2) 列舉,將陣列當中的元素枚舉出來形成一個一個的元組,元組當中的索引則根據第二個引數來決定。
第一個引數是陣列names,第二個引數是索引,如果不加,則代表索引從0開始輸出,如果設定為2,則從陣列中取出元數形成的元組索引則從2開始。
for i in enumerate(names):#for迴圈只有一個引數i
    print(i)
#以上代表則依次輸出元組,(0,'a')(1,'b')(2,'c')(3,'d')

for i, item in enumerate(names,1):#for迴圈有兩個引數i和item
    print(“i的值為%d,item的值為%s”%(i, item))
#以上兩個引數,代表第一個引數為索引,第二個引數為值,所以enumerate可以同時讀取出字典的索引和值
結果如下:
i的值為1,item的值為a
i的值為2,item的值為b
i的值為3,item的值為c
i的值為4,item的值為d

可變型別:list,字典,
不可變型別:數值、字串,元組
list:   names=[]  name[0]=值
tuple:  names=()
dict:  names={}  name[key]=值

作者:滄水巫雲
部落格:http://blog.csdn.NET/amir_zt/
以上原創,轉載請註明出處,謝謝。
https://blog.csdn.net/amir_zt/article/details/82875890