2020-11-09

一.元組

-->元組的創(chuàng)建

tup = (1,2,3,4,5)

print(tup,type(tup))

(1, 2, 3, 4, 5)

print(tup[1])? ? //同列表索引值,元組也有其屬性

2

tup[0] = 10? ? ? ? //元組是不可變序列,不可修改,否則報錯

print(tup)

TypeError: 'tuple' object does not support item assignment

-->如果元組非空,必須有一個逗號

tup1 =10,

tup2 =True,

tup3 ='hello',

print(tup1)

print(tup2)

print(tup3)

(10,)

(True,)

('hello',)


tup =10,20,30,40

print(tup)

(10, 20, 30, 40)

a,s,d,f = tup

-->元組的解包 變量值與元組中元素值一樣

1.錯誤示例

tup4 = 1,2,3,4

a,b = tup4

print('a = ',a)

?print('b = ',b)

valueError: too many values to unpack (expected 2)

print('a = ',a)

print('s = ',s)

print('d = ',d)

print('f = ',f)

a =? 10

s =? 20

d =? 30

f =? 40

-->變量值與元組中元素值不一樣,變量前添加*,那么這個變量將剩余元素保存在一個列表中,這個變量不可以是中間的變量,*第一個變量? ? *最后一個變量? 這兩種都行

tup5 =1,2,3,4,5

a,b,*c = tup

print('a = ',a)

print('b = ',b)

print('c = ',c)

a =? 10

b =? 20

c =? [30, 40]

二.可變對象

可變對象:

????????????????id()?????????type()????????? value()

-->改對象里面的值,不改變變量指向的對象

a = [1,2,3]

print('修改前:',a,id(a))

a[0] =10

print('修改后:',a,id(a))

修改前: [1, 2, 3]2243795378696

修改后: [10, 2, 3]2243795378696


--> 改變量:修改id ,指向了不同的對象?

b = [1,2,3]

print('修改前:',b,id(b))

b = [4,5,6]

print('修改前:',b,id(b))

修改前: [1, 2, 3] 2343263167048

修改前: [4, 5, 6] 2343264392328

該變量:修改id ,指向了不同的對象

實(shí)例:

a = [1,2,3]

b = a????#此時ab指向相同的對象

b[0] =10? #修改對象里面的值,不改變對象id

print(a,id(a))

print(b,id(b))

?[10, 2, 3] 2188658106952

?[10, 2, 3] 2188658106952

a = [1,2,3]

b = a????#此時ab指向相同的對象

b = [10,2,3]????#修改變量b,此時對象改變了,ab指向不同的對象

print(a,id(a))

print(b,id(b))

?[1, 2, 3] 1753516414088

?[10, 2, 3] 1753515188808

三.字典的引入

-->字典:dict

字典是由鍵值對組成 key : value? key:一般使用字符串value : 可以使用任意類型

-->字典的創(chuàng)建

1.直接創(chuàng)建

d ={'name':'小黑','age':6,'color':'black'}

print(d,type(d))

{'name': '小黑', 'age': 6, 'color': 'black'}

2.通過dict函數(shù)創(chuàng)建字典

d = dict(name = '小黑',age = 6,color = 'black')

print(d,type(d))

{'name': '小黑', 'age': 6, 'color': 'black'}

-->dict函數(shù)可以將一個包含雙值子序列轉(zhuǎn)化為字典

注意:雙值子序列:序列中有兩個元素,每個元素也是序列

d = dict([('name','小黑'),('age',6)])

print(d,type(d))

{'name': '小黑', 'age': 6}

-->字典元素的獲取

1.普通獲取? get函數(shù)獲取

d ={'name':'小黑','age':6,'color':'black'}

a = 'age'

b = 'sex'

print(d[a])

print(d[b])

6

KeyError: 'sex'

print(d.get('color'))???????? black

print(d.get('sex'))???????????? None????

2.get(key,[default])函數(shù)也可以獲取字典中的value

? ? -->如果key不存在,返回none

? ? -->default 也可以指定一個默認(rèn)值,作為第二個參數(shù),如果獲取不到這個key,則返回默認(rèn)值

print(d.get('name1','key不存在'))? ? //字典中沒有name1這個key,顯示默認(rèn)值,不會報錯

key不存在

四.字典的使用

字典的操作

-->修改

d ={'name':'小黑','age':6,'color':'black'}

# d['color'] = 'white'

# print(d['color'])? #white

-->增加

d ={'name':'小黑','age':6,'color':'black'}

d['sex'] = '未知'

print(d)

{'name': '小黑', 'age': 6, 'color': 'black', 'sex': '未知'}

d ={'name':'小黑','age':6,'color':'black'}

d.setdefault('name','小白')

print(d)

{'name': '小黑', 'age': 6, 'color': 'black'}? ? ? ? // 字典中含有這個key,不改變字典

d.setdefault('sex','white')

print(d)

{'name': '小黑', 'age': 6, 'color': 'black', 'sex': 'white'}? ? ? ? // 字典中沒有這個key,即添加k-v


-->刪除

? ? 1.del? 指定元素

d = {'a':1,'b':2,'c':3,'d':4}

del d['b']

print(d)

{'a': 1, 'c': 3, 'd': 4}

? ? 2.popitem? 隨即刪除一個k-v,有返回值

d = {'a':1,'b':2,'c':3,'d':4}

r = d.popitem()? ? ? ? //變量r用來接收返回值

print(d,r)

{'a': 1, 'c': 3} ('d', 4)

? ? 3.pop()也是刪除指定元素,但是返回值是對于元素的額value??注意返回值與popitem不同

d = {'a':1,'b':2,'c':3,'d':4}

res = d.pop('d')

re = d.pop('w')

print(d,res)????????{'a': 1, 'b': 2, 'c': 3} 4

print(d,re)????????KeyError: 'w'


? ? -->update

d1 = {'a':1,'b':2,'c':3,'d':4}

d2 = {'e':5,'f':6,'g':7}

d1.update(d2)

print(d1)

print(d2)

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}

{'e': 5, 'f': 6, 'g': 7}

? ? -->clear()

d1 = {'a':1,'b':2,'c':3,'d':4}

print(d1)

{}

五.字典的簡單案例

a = {'name':'123','data':{'result':[{'src':'python1'},{'src':'python2'},{'src':'python3'}]}}

i =0

while i <3:

????print(a['data']['result'][i]['src'],end='\t')

????i +=1

python1 python2 python3


lst1 = [11,22,33,44,55,66,77,88,99,90]

lst2 = []

lst3 = []

for iin lst1:

????if i <=66:

????????lst2.append(i)

????else:

????????lst3.append(i)

d = {'k1':lst2,'k2':lst3}

print(d)

{'k1': [11, 22, 33, 44, 55, 66], 'k2': [77, 88, 99, 90]}

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

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

  • 一.通用操作 --> + * lst = [1,2,3]lst2 = [4,5,6]print(lst + l...
    游世九黎閱讀 194評論 0 0
  • Flask-Restful插件 Flask-Restfu是一個專門用來寫restful api的一個插件。使用他可...
    Sky_Brige閱讀 388評論 0 0
  • 1、DR模式下vip不在同一網(wǎng)段上實(shí)現(xiàn)過程(跨網(wǎng)段) #CIP配置 [root@centos8 ~]#cat/et...
    SkyCastleWQ閱讀 131評論 0 0
  • include <iostream> include <string> include <regex> inclu...
    我是賣報的小行家0829閱讀 201評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,841評論 16 22

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