2019-01-03

Day 8

一站粟、 元組(tuple)

1、python中容器數(shù)據(jù)類型尼摹,不可變且有序。

元組就是不可變的列表
不可變:不支持增刪改剂娄,可以查
有序:每個元素對應(yīng)一個確定的下標(biāo)

2窘问、 字面量和元素

(元素1,元素2宜咒,元素3……)
元素可以是任意的數(shù)據(jù)類型,并且類型可以不一樣把鉴,同樣的元素可以有多個

3故黑、 注意:

a. 空的元組:()
b. 只有一個元素的元組
t = (90,) 逗號必須要
c. 直接將多個元素用逗號隔開儿咱,不加小括號也表示是一個元祖

4、 元組獲取元素和列表一樣

t = (1, 2, 3, 4)
print(t[1], t[-1])
#2 4

變量1场晶,變量2…… = 元組 --- 用前面的變量一次獲得元組元素的值混埠。
要去前面變量的個數(shù)和元組元素的個數(shù)一致
變量1, 變量2 = 元組 --- 通過帶的變量獲取元組中剩余的部分诗轻。
帶‘*’的只能有一個钳宪,不帶的可以多個

t = 1, 2
x, y = t
t = 1, 2, 4
x, *y = t
# * 的用法
print(*t)
#1 2 4

5、 相關(guān)運算(和列表一樣)

+扳炬,*吏颖, in, not in恨樟, len()半醉,max(),min()劝术,tuple()

t1 = 1, 23, 4
t2 = 2, 3, 4
print(t1 + t2)
print(t1 * 2)
#(1, 23, 4, 2, 3, 4)
#(1, 23, 4, 1, 23, 4)

6缩多、 排序

sorted(序列) - 對序列中的元素排序,產(chǎn)生一個新的序列
注意:列表.sort() --修改原列表中元素的順序
sorted.(列表) -- 產(chǎn)生一個新列表

t1 = 1, 13213, 2134, 45
t2 = sorted(t1)
print(t2)
#[1, 45, 2134, 13213]

7养晋、 join的使用

字符串.join(序列) - 將序列中的元素取出衬吆,用指定的字符串連接在一起。
要求序列中的元素必須是字符串

new_str = '*'.join('123')
print(new_str)
#1*2*3

二绳泉、 字典

1逊抡、 字典的意義

python提供的容器型數(shù)據(jù)類型,可變且無序
可變 - 支持元素的增刪改
無序 - 不支持下標(biāo)操作

2圈纺、 字面量和元素

用大括號括起來秦忿,里面多個鍵值對,每個鍵值對用逗號隔開蛾娶。鍵值對就是字典的元素
{key1:value, key2:value2, key3:value3……}
鍵值對 - key:鍵灯谣,value:值;鍵值對必須成對出現(xiàn)蛔琅,而且脫離字典單獨出現(xiàn)沒有意義胎许。
key : 必須是不可變且唯一。實際一般將字符串作為key
value: 可以是任意類型的數(shù)據(jù)
注意:字典存儲數(shù)據(jù)罗售,實質(zhì)是通過值來存儲的辜窑。key是值對應(yīng)的標(biāo)簽和獲取值得方式。

3寨躁、 使用字典:多個沒有相同意義的數(shù)據(jù)(需要區(qū)分)穆碎,就使用字典。

例如:保存一個人的不同信息职恳,一輛車的不同信息所禀。
使用列表:存儲的多個數(shù)據(jù)是有相同意義的數(shù)據(jù)(不要去區(qū)分)方面,就使用列表。
例如:保存一個班的學(xué)生信息色徘,保存所有的價格

練習(xí):聲明一個變量恭金,保存一個班的學(xué)生信息,每個學(xué)生需要保存姓名褂策、電話和年齡

stu_inf = [{'name': 'ashui', 'tel': "123", 'age': '12'}, 
{'name': 'xiaoming', 'tel': "123", 'age': '12'}, 
{'name': 'xiaoming', 'tel': "123", 'age': '12'}]
print(stu_inf[0])
# {'name': 'ashui', 'tel': '123', 'age': '12'}

三由捎、 字典元素的增刪改查

1宏娄、 查(獲取值) - 獲取字典中key對應(yīng)值

注意:字典中的鍵值對單獨拎出來沒有任何意義
a. 字典[key] -- 獲取字典中key對應(yīng)值
注意:當(dāng)key 不存在的時候,會報錯KeyError
b. 字典.get(key) - 獲取字典中key對應(yīng)值
注意:當(dāng)key不存在的時候,會取到一個默認(rèn)值None
字典.get(key,值1) - 獲取字典中key對應(yīng)值
注意:當(dāng)key不存在的時候慧瘤,會取到指定的值1
c. 遍歷字典
注意:直接通過for-in遍歷字典取到的是key

car = {'color': 'yellow', 'type': '跑車', 'price': 123021341}
print(car['color'])
print(car.get('type'))
#yellow
#跑車
# 遍歷字典獲取key
for x in car:
    print(x)
    print(car[x])
# 遍歷字典獲取values
for x in car.values():
    print(x)
# 遍歷字典的items()确买,直接獲取鍵對值
for key, value in car.items():
    print(key, value)

2治宣、 增怕享、改

字典[key] = 值 -- 當(dāng)key不存在的時候,就是添加鍵值對尾抑;當(dāng)key存在的時候歇父,就是修改key對應(yīng)的值

3、 刪(刪除鍵值對)

a. del 字典[key] -- 刪除字典中指定的key對應(yīng)的鍵值對
b. 字典.pop(key) -- 取出字典中key對應(yīng)的值

car['qw'] = 'er'
print(car)
del car['qw']
print(car)
print(car.pop('color'))

用一個字典來保存學(xué)生的信息{'name': '張三', 'age' : 30, 'score': 80}
輸入需要修改的信息再愈,沒有就提示該信息不存在

stu_inf = {'name': '張三', 'age': 30, 'score': 80}
s = input('請輸入要修改的信息:')
if stu_inf.get(s):
    y = input('請輸入要修改的內(nèi)容:')
    if s == 'name':
        stu_inf['name'] = y
    if s == 'age':
        stu_inf['age'] = y
    if s == 'score':
        stu_inf['score'] = y
    print(stu_inf)
else:
    print('沒有此信息')

stu_inf = {'name': '張三', 'age': 30, 'score': 80}
s = input('請輸入要修改的信息:')
if stu_inf.get(s):
    for x in stu_inf:
        if s == x:
            x = input('請輸入要修改的信息:')
            stu_inf[s] = x
            print(stu_inf)
else:
    print('沒有此信息')

四榜苫、 字典的方法

1、 比較運算

== 翎冲, != :判斷兩個字典是否相等垂睬,只看鍵值對是否一樣,不管鍵值對的順序
字典不支持大于和小于符號

2抗悍、 in / not in

key in 字典 --- 判斷字典中指定的key是否存在
key in not 字典 --- 判斷字典中指定的key是否不存在

3驹饺、 len*(),max(),min()

4、字典類型轉(zhuǎn)換

a. 列表轉(zhuǎn)字典 :dict(數(shù)據(jù)) - 數(shù)據(jù)要求是序列缴渊,并且序列中的元素都是有兩個元素的子序列
b. 元祖或字典轉(zhuǎn)列表赏壹,就是將key提取出來。

5衔沼、 相關(guān)方法

a. 字典.clear() - 清空字典
b. 字典.copy() - 復(fù)制字典中的元素蝌借,產(chǎn)生一個新的字典
c. dict.fromkeys(序列,值) - 以序列中所有的元素作為key,
指定的值作為value創(chuàng)建一個新的字典的初始值
d. 字典.keys() - 將字典中所有的key取出產(chǎn)生一個新的序列
字典.value() - 將字典中所有的value取出產(chǎn)生一個新的序列
字典.items() - 將字典中所有的key和value取出作為一個元組產(chǎn)生一個新的序列
e. 字典.setdefault(key,value=None)
字典.setdefault(key) - 當(dāng)key不存在的時候指蚁,添加鍵值對key:None
字典.setdefault(key,value) - 當(dāng)key不存在的時候菩佑,添加鍵值對key:value
注意: 這個操作當(dāng)key存在的時候,不會修改
f. 字典1.update(字典2) - 使用字典2中的鍵值對去更新字典1凝化。
如果字典2的key稍坯,字典1中本身存在就是修改,不存在就添加

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 2, 'a': 1}
print(dict1 == dict2)
print('a' in dict1)
len(dict1)

dict1.clear()
print(dict1)
print(dict2.keys())
new_dict = dict.fromkeys('abc', 100)
print(new_dict)
print(new_dict.setdefault(2))

五搓劫、 集合

1劣光、 什么是集合(set)

可變的袜蚕,無序的;元素是唯一并且不可變

2绢涡、 字面量

{元素1,元素2遣疯,元素3,……}

set1 = {1, 23, 'a'}
print(set1)
# {1, 'a', 23}

set2 = set() 空集合
集合自帶去重功能

3雄可、查增刪

a. 查,集合不能單獨的獲取的單個元素缠犀,只能一個一個的遍歷
b. 增:集合.add(元素) - 在集合中添加指定的元素
集合.upadte(序列) - 將序列中的元素添加到集合中
c. 刪:集合.remove(元素) - 刪除集合中指定的元素

set1 = {1, 2, 3, 4, 5, 6}
for i in set1:
    print(i)
set1.add('1')
print(set1)
set1.update(['qw', 'er'])
print(set1)
set1.remove(1)
print(set1)
# 1
# 2
# 3
# 4
# 5
# 6
# {1, 2, 3, 4, 5, 6, '1'}
# {1, 2, 3, 4, 5, 6, 'er', 'qw', '1'}
# {2, 3, 4, 5, 6, 'er', 'qw', '1'}

4数苫、 數(shù)學(xué)集合運算

交集(&):獲取兩個集合公共的元素產(chǎn)生一個新的集合
并集(|):將兩個集合中的元素合并在一起產(chǎn)生一個新的集合
差集(-):集合1 - 集合2 ,去掉集合1中包含集合2中的部分
補集(^):將兩個集合號合并在一起辨液,去掉公共部分虐急,剩下的產(chǎn)生一個新的集合
子集的判斷:集合1>集合2 --> 判斷集合1中是否包含集合2
集合1<集合2 --> 判斷集合2中是否包含集合1

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
print(set1 & set2)
print(set1 | set2)
print(set1 - set2)
print(set1 ^ set2)
print(set1 > set1)
# {3, 4, 5}
# {1, 2, 3, 4, 5, 6, 7}
# {1, 2}
# {1, 2, 6, 7}
# False
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市滔迈,隨后出現(xiàn)的幾起案子止吁,更是在濱河造成了極大的恐慌,老刑警劉巖燎悍,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敬惦,死亡現(xiàn)場離奇詭異,居然都是意外死亡谈山,警方通過查閱死者的電腦和手機俄删,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奏路,“玉大人畴椰,你說我怎么就攤上這事「敕郏” “怎么了斜脂?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長潜叛。 經(jīng)常有香客問我秽褒,道長,這世上最難降的妖魔是什么威兜? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任销斟,我火速辦了婚禮,結(jié)果婚禮上椒舵,老公的妹妹穿的比我還像新娘蚂踊。我一直安慰自己,他們只是感情好笔宿,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布犁钟。 她就那樣靜靜地躺著棱诱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涝动。 梳的紋絲不亂的頭發(fā)上迈勋,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音醋粟,去河邊找鬼靡菇。 笑死,一個胖子當(dāng)著我的面吹牛米愿,可吹牛的內(nèi)容都是我干的厦凤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼育苟,長吁一口氣:“原來是場噩夢啊……” “哼较鼓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起违柏,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤博烂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后勇垛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脖母,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年闲孤,在試婚紗的時候發(fā)現(xiàn)自己被綠了谆级。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡讼积,死狀恐怖肥照,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情勤众,我是刑警寧澤舆绎,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站们颜,受9級特大地震影響吕朵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窥突,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一努溃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阻问,春花似錦梧税、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哮塞。三九已至,卻和暖如春凳谦,著一層夾襖步出監(jiān)牢的瞬間忆畅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工尸执, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留邻眷,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓剔交,卻偏偏與公主長得像,于是被迫代替她去往敵國和親改衩。 傳聞我的和親對象是個殘疾皇子岖常,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容