day8-字典和集合

1.字典相關(guān)操作

1)運(yùn)算符

字典不支持+乳怎、*前弯、<、>询枚、<=浙巫、>=刷后;只支持:==憨闰,礁阁!=

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

2)in/not in

鍵 in 字典 - 判斷字典中是否存在指定的鍵

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

3)相關(guān)函數(shù)

  • len()
  • dict(序列) - 將其他數(shù)據(jù)轉(zhuǎn)換成字典含衔;數(shù)據(jù)本身必須是序列嘶炭,序列中的元素是小序列眨猎,小序列有且只有兩個元素强经,第一個元素不可變
    字典不能轉(zhuǎn)換成數(shù)字,但可以轉(zhuǎn)換成布爾兰迫;
    字典可以轉(zhuǎn)列表
seq = ('ab', '12', '34')
print(dict(seq))

student1 = {'name': '小明', 'age': 19, 'gender': '男'}
list1 = list(student1)
print(list1)

4)相關(guān)方法

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

student = {'name': '小明', 'age': 19, 'gender': '男'}
student.clear()
print(student)

b.字典.copy() - 拷貝字典產(chǎn)生一個新的字典(淺拷貝)

student = {'name': '小明', 'age': 19, 'gender': '男'}
new_student = student.copy()
print(new_student)
new_student['name'] = '小華'
print(student, new_student)

c.dict.fromkeys(序列炬称,值) - 創(chuàng)建一個字典,將序列中的元素作為key,key對應(yīng)的value都是指定的值

dict2 = dict.fromkeys(['name', 'color', 'gender', 'age'], 100)
print(dict2)

d.字典.item() - 將字典中所有的鍵值對都轉(zhuǎn)換成元組作為一個序列的元素

student = {'name': '小明', 'age': 19, 'gender': '男'}
print(student.items())   # dict_items([('name', '小明'), ('age', 19), ('gender', '男')])

# 字典.value()  - 獲取字典中所有的值据德,返回一個序列
print(student.values())    # dict_values(['小明', 19, '男'])

# 字典.keys()   - 獲取字典中所有的鍵跷车,返回一個序列
print(student.keys())      # dict_keys(['name', 'age', 'gender'])

e.字典.setdefault(key,value) - 當(dāng)key不存在的時候添加鍵對(不會修改)

student = {'name': '小明', 'age': 19, 'gender': '男'}
student.setdefault('score', 90)
print(student)

# student['score'] = 80
student.setdefault('score', 80)
print(student)

f.字典1.update(字典2) - 將字典2中的鍵對添加到字典1中

person = {'name': '小明', 'height': 179, 'weight': 70}
student.update(person)
print(student)   # {'name': '小明', 'age': 19, 'gender': '男', 'score': 90, 'height': 179, 'weight': 70}

5)字典數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)

system = {
    'user_name': 'abc',
    'password': '123123',
    'manager': {'name': '張三', 'tel': '19102190192'},
    'student': [
        {'name': 'a', 'study_id': '111', 'age': 16},
        {'name': 'b', 'study_id': '112', 'age': 18},
        {'name': 'c', 'study_id': '113', 'age': 19}
    ]
}

2.集合

1.什么是集合(set)

a.集合

集合是容器型數(shù)據(jù)類型朽缴;將{}作為容器標(biāo)志密强,多個元素用逗號隔開:{元素1,元素2或渤,...}
集合是可變的劳坑,無序的

b.元素

集合中的元素必須是不可變的數(shù)據(jù),而且是唯一(自帶去重功能)

set1 = {12, 'an', (10, 20)}
print(set1)

# set2 = {12, 'an', [10, 20]}  # TypeError: unhashable type: 'list'

set3 = {12, 'an', (10, 20), 12}
print(set3)

print({1, 2, 3} == {3, 2, 1})   # True涝开,說明無序

# {}表示空字典
set4 = {}
print(type(set4))   # <class 'dict'>

# 空集合
set5 = set([])
print(type(set5))   # <class 'set'>

# 集合去重:set(序列)  - 將序列轉(zhuǎn)換成集合(自動去重)
list1 = [11, 29, 90, 11, 28, 7, 66]
list1 = list(set(list1))
print(list1)

2)集合元素的增刪改查 (不重要)

a.查 - 獲取集合元素,只有遍歷一種方法

for 變量 in 集合:
pass
補(bǔ)充:遍歷字典和集合的時候拄养,其實(shí)是遍歷將字典或者集合轉(zhuǎn)換成的列表

names1 = {'c', 'b', 'a'}
for name in names1:
    print(name)

b.增

a.集合.add(元素) - 在集合中添加一個元素
b.集合.update(序列) - 將序列中的元素添加到集合中

names1.add('d')
print(names1)

names1.update([100, 200])
print(names1)

names1.update('how')
print(names1)

c.刪:集合.remove(元素) - 刪除集合中指定的元素

names1.remove('a')
print(names1)

d.改 (不支持改操作)

3)集合相關(guān)操作

a.運(yùn)算符:只支持判斷相等的==银舱,!=

# print({1, 2, 3} + {4, 5})  不支持

b.in / not in

names1 = {'c', 'b', 'a'}
print('a' in names1)   # True

c.len,max,min,sum,sorted,set

4)數(shù)學(xué)集合運(yùn)算(重要棋弥!)

python中的集合直接支持?jǐn)?shù)學(xué)的集合運(yùn)算:|(并集)诚欠,&(交集),-(差集)粉寞,^(對稱差集)左腔,>/<(判斷包含)

set1 = {1, 2, 3, 4, 5}
set2 = {3, 9, 2, 4, 0, 8}

# 1)集合1 | 集合2    - 將兩個集合合并在一起
print(set1 | set2)

# 2)集合1 & 集合2    - 獲取兩個集合的公共部分
print(set1 & set2)

# 3)集合1 - 集合2    - 獲取集合1中除了集合2剩下的部分
print(set1 - set2)
print(set2 - set1)

# 4)集合1 ^ 集合2    - 獲取集合1和集合2除了公共部分以外的部分
print(set1 ^ set2)

# 5)集合1 > 集合2    - 判斷集合1中是否包含集合2(判斷集合2是否是集合1的子集)
print(set1 > set2)        # False
print({1, 2, 3} > {1})    # True

字符串和字符

1)什么是字符串(str)

字符串是容器型數(shù)據(jù)類型(序列)液样;將''或""作為容器的標(biāo)志,多個字符(元素)直接包含在引號中
字符串是不可變的双炕、有序的

str1 = ''
str2 = 'akq,1哈哈'

2)字符串中的元素(字符)

字符串中元素叫字符
1)普通字符
2)轉(zhuǎn)義字符:在指定的符號或者字母前加\來表示特殊功能或者特殊意義的字符
' - 表示一個單引號
" - 表示一個雙引號
\n - 換行符
\t - 制表符
\ - 表示一個
注意:一個轉(zhuǎn)義字符的長度是1

str3 = '123\'abc'
print(str3)

str4 = '床前明月光撮抓,\n疑是地上霜。\n舉頭望明月站超,\n低頭思故鄉(xiāng)乖酬。'
print(str4)

str5 = '\t床前明月光,\n\t疑是地上霜算撮。\n\t舉頭望明月,\n\t低頭思故鄉(xiāng)陷舅。'
print(str5)

str6 = '123\\nabc'
print(str6, len(str6))

3)編碼字符: \u4位的十六進(jìn)制數(shù)表示一個字符审洞;數(shù)字對應(yīng)值是字符對應(yīng)的編碼值
字符編碼:計(jì)算機(jī)在存儲數(shù)據(jù)的時候只能存數(shù)字。計(jì)算機(jī)存儲文字(字符)的時候?qū)嵸|(zhì)存的是文字對應(yīng)的數(shù)字仰剿,每個文字都會對應(yīng)一個固定的數(shù)字痴晦,這個數(shù)字就是字符的編碼。

編碼表:每個字符和數(shù)字的一一對應(yīng)關(guān)系就是編碼表旨袒。常見的編碼表有兩種:ASCII表术辐、Unicode編碼表施无, Unicode編碼表是對ASCII表擴(kuò)展。

chr(編碼值) - 獲取編碼值對應(yīng)的字符
ord(字符) - 獲取字符對應(yīng)的編碼值

str7 = '一\u4e00\u9fa5'
print(str7)

print(chr(97), chr(65))
print(ord('a'), ord('A'))

# 輸出全部中文漢字
count = 0
for code in range(0x4e00, 0x9fa5):
    print(chr(code), end='')
    count += 1
    if count % 20 == 0:
        print()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兴想,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捞镰,老刑警劉巖毙替,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厂画,死亡現(xiàn)場離奇詭異,居然都是意外死亡屎慢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門环肘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妖枚,“玉大人,你說我怎么就攤上這事荠商⌒” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵饰躲,是天一觀的道長嘹裂。 經(jīng)常有香客問我摔握,道長,這世上最難降的妖魔是什么氨淌? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任盛正,我火速辦了婚禮,結(jié)果婚禮上痰滋,老公的妹妹穿的比我還像新娘壤蚜。我一直安慰自己,他們只是感情好聪富,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布著蟹。 她就那樣靜靜地躺著梢莽,像睡著了一般昏名。 火紅的嫁衣襯著肌膚如雪阵面。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天仑扑,我揣著相機(jī)與錄音置鼻,去河邊找鬼。 笑死储藐,一個胖子當(dāng)著我的面吹牛嘶是,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肺缕,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼授帕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浮梢?” 一聲冷哼從身側(cè)響起跛十,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秕硝,沒想到半個月后芥映,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡远豺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年奈偏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躯护。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡惊来,死狀恐怖棺滞,靈堂內(nèi)的尸體忽然破棺而出裁蚁,到底是詐尸還是另有隱情矢渊,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布枉证,位于F島的核電站矮男,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏室谚。R本人自食惡果不足惜毡鉴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秒赤。 院中可真熱鬧猪瞬,春花似錦、人聲如沸倒脓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崎弃。三九已至甘晤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饲做,已是汗流浹背线婚。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盆均,地道東北人塞弊。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像泪姨,于是被迫代替她去往敵國和親游沿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

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

  • 1.元祖 1.什么是元祖 使用()將多個元素?cái)U(kuò)起來肮砾,多個元素之間用逗號隔開a.容器诀黍,可以同時存儲多個數(shù)據(jù),不可變的...
    煙雨江畔丶閱讀 91評論 0 0
  • 01-元祖 1.什么是元祖 使用()將多個元素括起來仗处,多個元素之間用逗號隔開a.容器眯勾,可以同時存儲多個數(shù)據(jù),不可變...
    佐手牽鼬手_89a9閱讀 88評論 0 0
  • 元祖 1.什么是元祖使用()將多個元素括起來,多個元素之間用逗號隔開a.容器婆誓,可以同時存儲多個數(shù)據(jù),不可變的吃环,有序...
    芽菜包66閱讀 119評論 0 0
  • 一、元組 1.什么是元組 使用()將多個元素括起來洋幻,多個元素之間用逗號隔開郁轻。a.容器,可以同時存儲多個數(shù)據(jù)鞋屈,不可變...
    xdxh閱讀 160評論 0 0
  • 元組 1.什么是元組 使用()將多個元素括起來范咨,多個元素之間用逗號隔開a.容器故觅,可以同時存儲多個數(shù)據(jù),不可變的渠啊,有...
    莫名ypc閱讀 210評論 0 0