2018-10-09元祖字典集合

元祖

a.是一種容器,可以同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù),不可變的,有序的

不可變 --> 不能增刪改
有序 --> 可以通過(guò)下標(biāo)獲取元素
b.里面的元素,可以是任何類(lèi)型的數(shù)據(jù)

注意:

1.如果元祖的元素只有一個(gè)的時(shí)候,必須在后面加逗號(hào)

tuple1 = (100,)
print(type(tuple1))
#<class 'tuple'>

2.多個(gè)數(shù)據(jù)直接用逗號(hào)隔開(kāi),表示的也是一個(gè)元祖

tuple1 = 10,20,'abc'
print(tuple1,type(tuple1))
#(10, 20, 'abc') <class 'tuple'>

元素的查

元祖的元素不支持增加刪改
列表獲取元素的方式,元祖都支持:元祖[下標(biāo)],下標(biāo)[:]

tuple1 = '星期一','星期二','星期三','星期四'
print(tuple1[1]) #星期二
print(tuple1[2:])#('星期三', '星期四')
print(tuple1[::-1])#('星期四', '星期三', '星期二', '星期一')

也是可以遍歷 和列表一樣

獲取部分元素

x,y = (10,20)
print(x,y)
#10 20

a = 10
b = 20
a,b = b,a
print(a,b)
#20 10 

可以通過(guò)在變量前加*來(lái)獲取部分元素

tuple2 = ('葉玉',30,80,90)
name,*score = tuple2
print(name,score)
#葉玉 [30, 80, 90]


tuple2 = ('葉玉',30,80,90,'girl')
name,*score,sex = tuple2
print(name,sex,score)
#葉玉 girl [30, 80, 90]

可以通過(guò)在列表或者元素前加*,來(lái)展開(kāi)列表中的元素

tuple3 = (1,2,3,4,5,6)
print(*tuple3)
#1 2 3 4 5 6

元祖的運(yùn)算

+,*,==,is,in, not in, --> 和列表一樣
len() 列表,max() 最大,min()最小
所有序列都可以轉(zhuǎn)換為元祖,注意,字典只能將key值作為元祖元素
tuple() -->轉(zhuǎn)換數(shù)據(jù)

7.sorted()由大到小排序

可以通過(guò)sorted()方法,對(duì)元祖進(jìn)行排序,產(chǎn)生一個(gè)新的列表

tuple4 = 10,40,60,40
new = sorted(tuple4)
print(new,tuple4)
#[10, 40, 40, 60] (10, 40, 60, 40)

字典

字典是一個(gè)容器類(lèi)的數(shù)據(jù)類(lèi)型,可以用來(lái)儲(chǔ)存多個(gè)數(shù)據(jù)(以鍵值對(duì)的形式儲(chǔ)存)??勺兊模瑹o(wú)序的
可變 -->可以增刪改
無(wú)序 -->不能通過(guò)下標(biāo)獲取值
{'葉玉':90,'小葉子':99.....}
鍵(key):用來(lái)定位值的。要求只能是不可變的數(shù)據(jù)類(lèi)型(數(shù)字,字符串,元祖...)是唯一的
值(value):儲(chǔ)存的數(shù)據(jù)??梢允侨魏晤?lèi)型的數(shù)據(jù)

獲取字典的值,必須通過(guò)key來(lái)獲取
a.字典[key] --> 獲取key對(duì)應(yīng)的值**確定key值在就用這個(gè)方法
注意:key值必須是存在的,否則會(huì)報(bào)keyError

student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}
print(student['name'])
#葉玉

b.字典.get(key) --> 通過(guò)key獲取值**不確定key值在不在就用這個(gè)方法
注意:key值不存在的時(shí)候不會(huì)報(bào)錯(cuò),結(jié)果是None

student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}
print(student.get('sex'))
#女

遍歷字典

通過(guò)for-in 遍歷字典拿到的是key值*建議使用
student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}
for x in student:
    print(x,end=' ')
#name sex age face score tel 
!!通過(guò)for-in 遍歷字典拿到的是key值和value值*建議使用
student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}
for x in student:
    print(x,student[x])

#name 葉玉
#sex 女
#age 18
#face 80
#score 100
#tel 保密

b.遍歷拿到value值
直接遍歷拿到值

student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}

for x in student.values():
    print(x,end=' ')
#葉玉 女 18 80 100 保密

直接遍歷拿到key和value

student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}

for x,y in student.items():
    print(x,y,end=' ')
#name 葉玉 sex 女 age 18 face 80 score 100 tel 保密 

增(增加鍵值對(duì))

字典[key] = 值(key不存在)

car = {}
car['color'] = 'yellow'
print(car)
#{'color': 'yellow'}

改(改值)

字典[key] = 新值(key存在)

car = {'color': 'yellow'}
car['color'] = 'red'
print(car)
#{'color': 'red'}

刪(刪鍵值對(duì))

del 字典[key] -->通過(guò)key刪除鍵值對(duì)

student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}
del student['sex']
print(student)
#{'name': '葉玉', 'age': 18, 'face': 80, 'score': 100, 'tel': '保密'}

pop(key) -->取出key對(duì)應(yīng)的值(實(shí)質(zhì)還是刪除key對(duì)應(yīng)的鍵值對(duì))

student = {'name':'葉玉','sex':'女','age':18,'face':80,'score':100,'tel':'保密'}
a = student.pop('age')
print(student)
#{'name': '葉玉', 'sex': '女', 'face': 80, 'score': 100, 'tel': '保密'}
print(a)
#18

字典相關(guān)的運(yùn)算

字典不支持運(yùn)算操作 比如+ ,*...

比較運(yùn)算

print({'a':1,'b':2} == {'a':1,'b':2}) #True
print({'a':1,'b':3} == {'a':1,'b':2}) #False

is --> 判斷地址是否一樣

print({'a':1,'b':2} is {'a':1,'b':2})
#False

in 和 not in key in 字典 / key not in字典 -->判斷在不在

print('abc' in {'abc':100,'a':'200'})
#True

len() -->獲取鍵值對(duì)的個(gè)數(shù)

dict1 = {'a':1,'b':2,'c':3}
print(len(dict1))
#3

字典.clear() -->清空字典

dict1 = {'a':1,'b':2,'c':3}
dict1.clear()
print(dict1)
#{}

copy()--->拷貝

dict1 = {'a':1,'b':2,'c':3}
dict2 = dict1.copy() # 拷貝的內(nèi)容新生成個(gè)地址
print(dict2,dict1 is dict2)
#{'a': 1, 'b': 2, 'c': 3} False  (內(nèi)容一樣地址不一樣)

dict.fromkeys(序列,值) -->將序列中每個(gè)元素的作為key,值作為value

dict3 = dict.fromkeys('xyz',100)
print(dict3)
#{'x': 100, 'y': 100, 'z': 100}


dict3 = dict.fromkeys(['a','b','c'],(10,20,30))
print(dict3)
#{'a': (10, 20, 30), 'b': (10, 20, 30), 'c': (10, 20, 30)}

字典.get(key) -->key不存在取None

字典.get(key,默認(rèn)值) -->key不存在取默認(rèn)值

student = {}
print(student.get('name')) #None
print(student.get('name','小葉子')) #小葉子

字典的轉(zhuǎn)換

字典.values() --> 返回所有值對(duì)應(yīng)的序列
a = {'a':1,'b':2,'c':3}
b = a.values()
print(b)
#dict_values([1, 2, 3])
字典.keys() --> 返回所有鍵對(duì)應(yīng)的序列
a = {'a':1,'b':2,'c':3}
b = a.keys()
print(b)
#dict_keys(['a', 'b', 'c'])
字典.items() -->將鍵值對(duì)轉(zhuǎn)換為元祖,作為一個(gè)序列的元素
dict1 = {'a':1,'b':2,'c':3}
items1 = dict1.items()
print(items1)
#dict_items([('a', 1), ('b', 2), ('c', 3)])
list(字典.items()) -->字典轉(zhuǎn)換為列表
dict1 = {'a':1,'b':2,'c':3}
items1 = list(dict1.items())
print(items1)
#[('a', 1), ('b', 2), ('c', 3)]

集合(set)

容器,可以同時(shí)儲(chǔ)存多個(gè)數(shù)據(jù),可變的,無(wú)序的
可變 -->增刪改
無(wú)序 -->不能通過(guò)下標(biāo)獲取元素
唯一 -->自帶去重的功能
{元素1,元素2....}
元素:只能是不可變的數(shù)據(jù)

集合的增刪改查

查(獲取元素)

集合不能單獨(dú)的獲取一個(gè)元素,也不能切片,只能通過(guò)for-in來(lái)遍歷

set1 = {10,20,'abc',(10,200)}
for x in set1:
    print(x)
#
(10, 200)
10
20
abc

集合.add(元素) --> 在集合中添加一個(gè)元素

set1 = {1,2,3}
set1.add(4)
print(set1)
#{1,2,3,4}

集合1.update(序列) --> 將序列中的元素添加到集合1中

set1 = {1,2,3}
set1.update({'a','b'})
print(set1)
{1,2,3,4,'a','b'}
刪(刪除元素)

集合.remove(元素) -->刪除指定的元素

set1 = {4,1,2,3}
set1.remove(1)
print(set1)
#{2, 3, 4}

集合不能改

集合相關(guān)的運(yùn)算

集合相關(guān)的運(yùn)算:是否包含 ,交集、并集、差集、補(bǔ)集

包含 --> >= <=

集合1 >= 集合2 -->判斷集合1是否包含集合2
集合2 >= 集合1 -->判斷集合2是否包含集合1

set1 = {1,2,3,4,5}
set2 = {2,3,4}
print(set1 >= set2)
#True

交集 --> &

求兩個(gè)集合公共的部分

set1 = {1,2,3,4,5}
set2 = {2,3,4,6,7,8,9}
print(set1&set2)
#{2, 3, 4}

并集 --> |

求兩個(gè)集合的和

set1 = {1,2,3,4,5}
set2 = {2,3,4,6,7,8,9}
print(set1|set2)
#{1, 2, 3, 4, 5, 6, 7, 8, 9}

差集 --> -

求集合1中除了集合2以外的部分

set1 = {1,2,3,4,5}
set2 = {2,3,4,6,7,8,9}
print(set1-set2)
#{1, 5}

補(bǔ)集 --> ^

求兩個(gè)集合除公共部分以外的部分

set1 = {1,2,3,4,5}
set2 = {2,3,4,6,7,8,9}
print(set1^set2)
#{1, 5, 6, 7, 8, 9}

類(lèi)型的轉(zhuǎn)換

1.整型 --> int()

浮點(diǎn)數(shù)、布爾、部分字符串可以轉(zhuǎn)換成整數(shù)
只有去掉引號(hào)后本身就是一個(gè)整數(shù)的字符串才能轉(zhuǎn)換成整型

print(int('34'))  #34
print(int('+34')) #34
print(int('-34')) #-34
浮點(diǎn)數(shù) -->float()

整數(shù),布爾,部分字符串可以轉(zhuǎn)換成浮點(diǎn)數(shù)
去掉引號(hào)本身就是個(gè)數(shù)字,才可以轉(zhuǎn)換成浮點(diǎn)數(shù)

print(float(100)) #100.0
print(float(True))#1.0
print('34.90')#34.90
print(float('100'))#100.0
布爾 --> bool()

所有字符都可以轉(zhuǎn)換成布爾
只有為空為0的時(shí)候才可以轉(zhuǎn)換為False,其他都是True

print(bool('abcd'))#True
print(bool('False'))#True
print(bool(''))#False
print(bool([1,2]))#True
print(bool([])) #False
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 01-元祖 1.什么是元祖 使用()將多個(gè)元素括起來(lái),多個(gè)元素之間用逗號(hào)隔開(kāi)a.容器,可以同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù),不可變...
    佐手牽鼬手_89a9閱讀 120評(píng)論 0 0
  • 一、元祖tuple 1、什么元祖 使用小括號(hào)()將多個(gè)元素括起來(lái),多個(gè)元素用逗號(hào)隔開(kāi)(元素1,元素2,.........
    ATM_shark閱讀 802評(píng)論 0 1
  • 元祖 1.什么是元祖使用()將多個(gè)元素括起來(lái),多個(gè)元素之間用逗號(hào)隔開(kāi)a.容器,可以同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù),不可變的,有序...
    芽菜包66閱讀 136評(píng)論 0 0
  • 1??什么是元祖 使用()將多個(gè)元素?cái)U(kuò)起來(lái),多個(gè)元素之間用逗號(hào)隔開(kāi)a.容器,可以同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù),不可表的,有序的...
    我是你唯一的py文件閱讀 166評(píng)論 0 0
  • 1.元祖 1.什么是元祖 使用()將多個(gè)元素括起來(lái),多個(gè)元素之間用逗號(hào)隔開(kāi)a.容器,可以同時(shí)存儲(chǔ)多個(gè)數(shù)據(jù),不可變的...
    W_00ee閱讀 200評(píng)論 0 0

友情鏈接更多精彩內(nèi)容