索引:
切片
循環(huán)遍歷的兩種方式
傳遞
元組
字典
查找
值 = 字典[鍵]
1,字典.get(鍵,[默認值])
2熄赡,len(字典)計算字典元素個數(shù),即鍵的總數(shù)
3齿税,str(字典)輸出字典可打印的字符串表示
4彼硫,dict.keys()以列表返回一個字典所有的鍵
5,dict.values()以列表返回一個字典所有的值
6凌箕,dict.items()? ? ? ? ? ? ? ? 以列表返回可遍歷的(鍵, 值) 元組數(shù)組
修改和新增
字典[鍵]=值
刪除
字典.pop(鍵)
del 字典[鍵]
字典.clear()
遍歷字典的方法
1乌助,dict.items()
2,根據(jù)“值 = 字典[鍵]”直接輸出
3陌知,根據(jù)字典的每一項(即每一個鍵值對)都是一個列表他托,遍歷每個列表,然后輸出
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
正文
列表切片
import math ls=[float('%0.3f'%math.sqrt(i)) for i in range(0,10) ]
print(ls)
切片
ls[a:b:c]
a默認=0
b默認=len(ls)
c默認=1
&*&*&*&**&*&*&*
c=-1時仆葡,就是倒序的ls例:ls[::-1]? <==>? ? ls.reverse()
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
循環(huán)遍歷的兩種方式:
一赏参、用while循環(huán)ls=[i**2 for i in range(0,19)]j=0while ja=20
print(b)? ==>b=10
ls1=[i for i in range(0,19)]
ls2=ls1
ls1.append(1)
print(ls1)? ==>ls1=[i for i in range(0,19)]+[1]
print(ls2)? ==>ls2=[i for i in range(0,19)]+[1]
傳遞后,一方改變沿盅,對另一方的影響:
1把篓,如果是普通類型(數(shù)字、字符串腰涧、布爾韧掩、空),
另一方不受影響? ? ==>值傳遞
2窖铡,如果是非普通類型疗锐,
另一方會隨之改變? ==>引用傳遞
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
元組
元組是一個特殊的列表。只讀费彼,不能修改滑臊。
一旦定義并賦值之后,不能再修改了箍铲。
只有查詢的功能
需要注意的兩點:
一雇卷,單元素元組的寫法
tu1=(1,)和tu2=(1)的格式不一樣,type(tu1)是tuple颠猴,type(tu2)是int
如果元組只有一個值关划,需要后面加逗號。
建議:
元組翘瓮、列表贮折,最后都加一個逗號
二,若元組中元素為列表時春畔,
列表里面的內(nèi)容可以更改
例:
nums = (1,2,3,[44,55,66])
nums[3][1] = 555
print(nums)? ==>nums=(1, 2, 3, [44, 555, 66])
反例:
nums = (1,2,3,[44,55,66])
nums[3] = [44,55,66]
這個操作則無法運行脱货,如同:
ls1=[i for i in range(0,19)]
ls2=ls1
ls1=[i for i in range(0,9)]
print(ls1)==>ls1=[i for i in range(0,9)]
print(ls2)==>ls2=[i for i in range(0,9)]
違背了傳遞的總結(jié)的結(jié)論,
原因都是變量改變了地址導(dǎo)致
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
列表和元組相互轉(zhuǎn)換
列表 = list(元組)
元組轉(zhuǎn)列表
元組 = tuple(列表)
列表轉(zhuǎn)元組
&*&*&*&
列表可以直接[i for i in range(0,9)]
用范圍值定義律姨,元組不可以這樣
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
字典
Python內(nèi)置了字典:dict的支持振峻,dict全稱dictionary
語法:
標(biāo)識符 = {'鍵1':值1,'鍵1':值2...}
注意:
1、鍵必須是字符串,值是任何類型的
2择份、鍵必須是唯一的扣孟,值可以重復(fù)
3、如果鍵重復(fù)了荣赶,后面會覆蓋前面的
infos = {
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽煙','喝酒','燙頭發(fā)']
}
print(infos['sname'])
print(infos['hobby'][2])
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
查找
字典的鍵是無序的
值 = 字典[鍵] 根據(jù)鍵查詢值
1凤价,字典.get(鍵,[默認值])
通過dict提供的get方法拔创,如果key不存在利诺,可以返回None,或者自己指定的value
2剩燥,len(字典) 計算字典元素個數(shù)慢逾,即鍵的總數(shù)。
3灭红,str(字典) 輸出字典可打印的字符串表示侣滩。
4,dict.keys() 以列表返回一個字典所有的鍵
5变擒,dict.values() 以列表返回一個字典所有的值
6君珠,dict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組
#獲取所有的鍵
keys1 = infos.keys()
print(keys1)? ==>輸出結(jié)果為列表形式
即:
print(keys1)? ==>dict_keys(['hobby', 'age', 'sid', 'sname'])
#遍歷鍵
for i in keys1:
print(i)
#獲取所有的值
values1 = infos.values()
print(values1)? ==>輸出結(jié)果為列表形式
即:dict_values([110, 22, '老王', ['抽煙', '喝酒', '燙頭發(fā)']])
#遍歷值
for i in values1:
print(i)
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
修改和新增
如果存在這樣的鍵,是修改
否則是新增
infos = {
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽煙','喝酒','燙頭發(fā)']
}
#修改
infos['age'] = 99
print(infos)
#新增
infos['sex'] = '男'
print(infos)
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
刪除
字典.pop(鍵)
根據(jù)鍵娇斑,刪除指定的值策添,并將此值放回
del 字典[鍵]
根據(jù)鍵,刪除指定的值
字典.clear()
清空字典里的鍵值對
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
判斷某個鍵是不是在字典里面
語法:鍵 in 字典
如果鍵在字典中存在毫缆,返回True
否則舰攒,返回False
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
遍歷字典的方法
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
第一種:
print(infos.items())
輸出結(jié)果為:
dict_items([('sid', 110), ('hobby', ['抽煙', '喝酒', '燙頭發(fā)']), ('sname', '老王'), ('age', 22)])
這樣只是把字典打印出來,顯得很亂
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
第二種:
原理:根據(jù)“值 = 字典[鍵]”
for k in infos:
print('%s:%s'%(k,infos[k]))
輸出結(jié)果:
hobby:['抽煙', '喝酒', '燙頭發(fā)']
age:22
sid:110
sname:老王
簡單明了
print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&假裝這不是分割線&&&&&&&&&&&&&&&&&&&&')
第三種:用for遍歷列表的方法悔醋,
原理:字典的每一項(即每一個鍵值對)都是一個列表
infos_items=字典的每個鍵值對
for i in infos_items:
#print('i=%s'%str(i))
key = i[0]
value = i[1]
print('%s:%s'%(key,value))
輸出結(jié)果:
sid:110
age:22
hobby:['抽煙', '喝酒', '燙頭發(fā)']
sname:老王
不如第二種方法簡便