一腺劣、列表
1绿贞、定義“在【】內(nèi)因块,用逗號分隔開多個任意數(shù)據(jù)類型的值
? ? ? x1 = [1,"a",[1,2]]? ? #本質(zhì)x1 = list([1,"a",[1,2]])
2、類型轉(zhuǎn)換
? ? ? 但凡能被for循環(huán)遍歷的數(shù)據(jù)類型都可以傳給list()轉(zhuǎn)換成列表類型籍铁,list()會跟for循環(huán)一樣遍歷出數(shù)據(jù)
? ? ? list("wdad")? ? #結(jié)果:【"w","d","a","d"】
? ? ? list([1,2,3])? ? #結(jié)果: 【1涡上,2,3】
? ? ? list({"name:","jason","age":18})? ? #結(jié)果:【"name","age"】
3拒名、使用
3.1按索引存取值(正向存取+反向存确岳ⅰ),即可存也可取
? ? ? 正向仍鱿浴(從左往右)
l = ["egon","tony","jason"]
print(l(0))
? ? ? ? 反向妊慵选(負號表示從右往左)
? ? ? l [-1]
? ? ? ? 對于list來說,即可以按照索引取值同云,又可以按照索引修改指定位置的值糖权,但如果索引不存在則報錯
l =? ["egon","tony","jason"]
l [1] = "Anna"
"egon" "Anna" "jason"
? 3.2切片(顧頭不顧尾冗恨,步長)
? ? ? ? 顧頭不顧尾咖为,取出索引為0到3的元素
l = ["egon",34,"tom","jason"]
print(l[0:3])
? ? ? ? 步長:0:3:2泡嘴,第三個參數(shù)2代表步長疾瓮,會從0開始态兴,每次累加一個2即可岖瑰,所以會取出索引0杀怠、2的元素
l = ["egon",34,"tom","jason"]
print(l[0:3:2])
3.3長度
>>>len(l)
3.4成員運算in和not in
>>>"egon" in l
True
>>>"XXX" not in l
True
3.5添加
? ? ? append()列表尾部的追加元素
>>> l1 = ["a","b","c"]
>>>l1.append("d")
>>>l1
["a","b","c","d"]
? ? extend()一次性在列表尾部添加多個元素
>>>l1 = ["a","b","c"]
>>>l1.extend("a,b,c")
["a","b","c","a","b","c"]
? ? ? insert()在指定位置插
>>>l = ["egon",34,"tom","jason"]
>>>l.insert(0,18)
>>>print(l)
[18, 'egon', 34, 'tom', 'jason']
3.6刪除:
l = ["egon",34,"tom","jason"]
del l[1]? ? ? #刪除的元素為1排龄,也可直接刪除整個列表阀坏,直接del + 列表名即可
print(l)
['egon', 'tom', 'jason']
pop()默認刪除列表最后一個元素如暖,并將刪除的值返回括號內(nèi)可以通過加索引值來指定刪除元素
l = ["egon",34,"tom","jason"]
res=l.pop()
print(l)
['egon', 34, 'tom']
remove()括號內(nèi)指定刪除哪個元素,沒有返回值
l = ["egon",34,"tom","jason"]
res=l.remove(34)
print(l)
['egon', 'tom', 'jason']
3.7? reverse()返轉(zhuǎn)列表內(nèi)元素順序
l = ["egon",34,"tom","jason"]
l.reverse()
print(l)
['jason', 'tom', 34, 'egon']
3.8 sort()給列表內(nèi)所有元素排序
1忌堂、排序時列表元素之間必須是相同數(shù)據(jù)類型装处,不可混搭,否則報錯
>>> l = [11,22,3,42,7,55]
>>> l.sort()
>>> l
[3, 7, 11, 22, 42, 55]? # 默認從小到大排序
>>> l = [11,22,3,42,7,55]
>>> l.sort(reverse=True)? # reverse用來指定是否跌倒排序,默認為False
>>> l
[55, 42, 22, 11, 7, 3]
2妄迁、了解知識:我們常用的數(shù)字類型比較大小寝蹈,但其實,字符串登淘、列表等都可以比較大小箫老,原理相同,都是依次比較
3.9 循環(huán)
>>>l = ["egon",34,"tom","jason"]
>>>for i in l:
? ? >>print(i)
egon
34
tom
jason
二黔州、元組
1耍鬓、作用:元組與列表類似,也是可以存多個任意類型的元素流妻,不同之處在于元組的元素不能修改牲蜀,即元組相當于不可變的
? ? ? ? ? ? ? ? 列表,用于記錄多個固定不允許修改的值绅这,單純用于取涣达。
2、定義方式:在()內(nèi)用逗號分隔開多個任意類型的值
>>>countries = ("中國","美國","英國")? #本質(zhì)countries = tuple("中國","美國","英國")
#強調(diào):如果元組內(nèi)只有一個值证薇,則必須加一個逗號度苔,否則()就只是包含的意思而非定義元組
3、類型轉(zhuǎn)換:但凡能被for循環(huán)的遍歷的數(shù)據(jù)類型都可以傳給tuple()轉(zhuǎn)換成元組類型
>>> tuple('wdad') # 結(jié)果:('w', 'd', 'a', 'd')
>>> tuple([1,2,3]) # 結(jié)果:(1, 2, 3)
>>> tuple({"name":"jason","age":18}) # 結(jié)果:('name', 'age')
>>> tuple((1,2,3)) # 結(jié)果:(1, 2, 3)
>>> tuple({1,2,3,4}) # 結(jié)果:(1, 2, 3, 4)
#tuple()會跟for循環(huán)一樣遍歷出數(shù)據(jù)類型中包含的每一個元素然后放到元組中
三浑度、字典
1寇窑、定義:在{}內(nèi)用逗號分隔開多個元素,每一個元素都是key:value的形式箩张,其中value可以是任意類型甩骏,而key則必須
是不可變類型,通常key應該是str類型先慷,因為str類型對value有描述的功能
info={'name':'tony','age':18,'sex':'male'} #本質(zhì)info=dict({....})
# 也可以這么定義字典
info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}
2饮笛、類型轉(zhuǎn)換
>>> info=dict([['name','tony'],('age',18)])
>>> info
{'age': 18, 'name': 'tony'}
fromkeys會從元組中取出每個值當做key,然后與None組成key:value放到字典中
>>> {}.fromkeys(('name','age','sex'),None)?
{'age': None, 'sex': None, 'name': None}
3熟掂、使用
? ? 3.1按key存取值缎浇,可存可取
取:
? ? dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? ? ? ? print(dic["hobbies"][1])
basketball
對于賦值操作赴肚,如果key原先不存在于字典素跺,則會新增key:value
對于賦值操作,如果key原先存在于字典誉券,則會修改對應value的值
? 3.2 長度len
? ? dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? ? print(len(dic))
? 3.3 成員運算 in 和 not in
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? ? ? print("name" in dic)
? 3.4刪除
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? ? print(dic.pop("name"))? ? #返回刪除的值 egon
? 3.5 鍵keys()
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? ? dic.keys()
? ? ? ? print(dic)
? ? ? ? 值values()
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? dic.values()
? ? ? ? 鍵值對items()
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
? ? ? dic.items()
? 3.6 循環(huán)
默認遍歷的是字典的key
for key in dic:
? ? ? ? print(key)
只遍在key
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
for key in dic.keys():
? ? ? ? ? print(key)
只遍歷value
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
for value in dic.values():
? ? ? ? print(value)
遍歷key與value
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
for key in dic.items():
? ? ? ? print(key)
4指厌、get()
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
print(dic.get("name"))
#key存在,則獲取key對應的value值
#key不存 在踊跟,可以設(shè)置默認返回的值
5踩验、pop()? 刪除指定的key對應的鍵對值鸥诽,并返回值
6、popitem() 隨機刪除一組鍵值對箕憾,并將刪除的鍵值放到元組內(nèi)返回
7牡借、update() 用新字典更新舊字典,有則修改袭异,無則添加
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
print(dic.update({"name":"Anna"}))
8钠龙、setdafault()? #key不存在則新增鍵值對,并將新增的value返回
dic={"name":"egon","age":18,"hobbies":["play game","basketball"]}
res = dic.setdefault("k1",789)
print(res)
四御铃、集合
1碴里、作用:集合、list上真、tuple咬腋、dict、一樣都可以存放多個值睡互,但是集合主要用于:去重根竿、關(guān)系運算
2、定義:在{}內(nèi)用逗號分隔開多個元素湃缎,集合具備以下三個特點:
1犀填、每個元素必須是不可變類型
2蠢壹、集合內(nèi)沒有重復的元素
3嗓违、集合內(nèi)元素無序
3、類型轉(zhuǎn)換:但凡能被for循環(huán)的遍歷的數(shù)據(jù)類型图贸,不可變類型都可以傳給set()轉(zhuǎn)換成集合類型
4蹂季、使用
1、求兩個用戶所有的好友(重復好友只留一個)
friends1 = {"a","b","c","d"}
friends2 = {"c","d",'e',"b"}
print(friends1|friends2)
2疏日、交集(&)求兩個用戶的共同好友
3偿洁、差集(-)
4、對稱差集(^)求兩個兩戶獨有的好友們(即去掉共有的好友)
5沟优、值是否相等(==)
五涕滋、去重
集合去重復有局限性
1、只能什對不可變類型
2挠阁、集合本身是無序的宾肺,去重之后無法保留原來的順序