1.列表類型內(nèi)置算法
1.必須掌握
1.按索引取值(正向取值+反向取值),即可存也可以取
#用于取其中一個(gè)值
name = ['yang','wen','yi']
##正方向取wen,也就是從左到右
pritn(name[1])
##正方向取wen,也就是從右到左
print(name[-2])
2.切片
#用于取多個(gè)值
name = ['yang','wen','yi']
#取其中的yang wen
print(name[0:2]) #和字符串類似顧頭不顧尾
print(name[0:-1])
print(name[-3:-1])
print(name[:2]) #這兩個(gè)是上面基礎(chǔ)上精簡(jiǎn)的
print(name[:-1])
推薦Python大牛在線分享技術(shù) 扣qun:855408893
領(lǐng)域:web開發(fā)顺少,爬蟲朋其,數(shù)據(jù)分析,數(shù)據(jù)挖掘脆炎,人工智能
3.長(zhǎng)度len
#用于長(zhǎng)度3
name = ['yang','wen','yi']
print(len(name))
4.成員運(yùn)算in和not in
#用于判斷有誤值在里面
name = ['yang','wen','yi']
print('wennnn' in name) #False
print('wen' in name) #True
5.追加append
#只加在最后
name = ['yang','wen','yi']
print(name.append(22)) #None
print(name) #['yang', 'wen', 'yi', 222]
6.刪除del
name = ['yang','wen','yi']
#刪除wen
del name[1]
7.循環(huán)
name = ['yang','wen','yi']
for i in name:
print(i)
#yang
#wen
#yi
2.了解
1.insert
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.insert(1, 'handsome') #加入后那個(gè)值的位置梅猿,加入的值
print(f"name_list: {name_list}")
2.pop
# list之pop(),pop()默認(rèn)刪除最后一個(gè)元素秒裕,刪除一個(gè)元素
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.pop(1): {name_list.pop(1)}") #會(huì)顯示刪除的值
print(f"name_list: {name_list}")
3.remove
# list之remove() 刪除一個(gè)元素
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.remove('nick'): {name_list.remove('nick')}") #會(huì)輸出None
4.count
# list之count() #x顯示對(duì)于值的個(gè)數(shù)
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.count('nick'): {name_list.count('nick')}")
5.index
查找索引
6.clear
刪除列表元素
7.copy
name_list = ['nick', 'jason', 'tank', 'sean']
print(f"name_list.copy(): {name_list.copy()}")
8.extend
# list之extend()
name_list = ['nick', 'jason', 'tank', 'sean']
name_list2 = ['nick handsome']
name_list.extend(name_list2)
print(f"name_list: {name_list}")
#name_list: ['nick', 'jason', 'tank', 'sean', 'nick handsome'] 在末尾加入
9.reverse
# list之reverse()
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.reverse()
print(f"name_list: {name_list}")
# name_list: ['sean', 'tank', 'jason', 'nick'] 翻轉(zhuǎn)
10.sort
# list之sort()袱蚓,使用sort列表的元素必須是同類型的
name_list = ['nick', 'jason', 'tank', 'sean']
name_list.sort()
print(f"name_list: {name_list}")
#name_list: ['jason', 'nick', 'sean', 'tank'] #升序
name_list.sort(reverse=True)
print(f"name_list_reverse: {name_list}")
#name_list_reverse: ['tank', 'sean', 'nick', 'jason'] #降序
3,一個(gè)值或者多個(gè)值
多個(gè)值
4.有序或者無序
有序
5.可變或者不可變
可變
2.元祖類型
1.定義
()几蜻,中間加元素用喇潘,隔開
2.用法
(與列表相似,區(qū)別是可以讀取不可存儲(chǔ)改變入蛆,列表中關(guān)于存儲(chǔ)或者改名元素的內(nèi)容內(nèi)置函數(shù)元祖不行)
- 索引取值
- 切片(顧頭不顧尾响蓉,步長(zhǎng))
- 長(zhǎng)度len
- 成員運(yùn)算in和not in
- 循環(huán)
- count
- index
3.一個(gè)值或者多個(gè)值
多個(gè)值
4.有序或者無序
有序
5.可變或者不可變
不可變
3.字典數(shù)據(jù)類型內(nèi)置算法
1.必須掌握
1.按key存取值:可存可取
dict = {'name':'yang','age':18}
#取 姓名
dict[name]
2.長(zhǎng)度len
dict = {'name':'yang','age':18}
#取 長(zhǎng)度
len(dict)
3.成員運(yùn)算in和not in
判斷有無key而不是值
4.刪除del
dict = {'name':'yang','age':18}
#刪除名字
dal dict[name]
5.鍵keys()、值values()哨毁、鍵值對(duì)items()
#演示即可
dict = {'name':'yang','age':18}
print(dict.keys())
print(dict.values())
print(dict.items())
'''
dict_keys(['name', 'age'])
dict_values(['yang', 18])
dict_items([('name', 'yang'), ('age', 18)])
'''
6.循環(huán)
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for k, v in dic.items(): # items可以換成keys()、values()
print(k, v)
#a 1
#b 2
#c 3
#d 4
2.慢慢掌握
1.get
和key取值有點(diǎn)類似區(qū)別就是取不到不會(huì)報(bào)錯(cuò)源武,但是不能用get來更換值
2.update
# dic之update()
dic1 = {'a': 1, 'b': 2}
dic2 = {'c': 3}#如果dic2與dic1中key有相同的扼褪,則不會(huì)增加新的key更新值,如果沒有相同的則會(huì)添加key還有值
dic1.update(dic2)
print(f"dic1: {dic1}")
#dic1: {'a': 1, 'b': 2, 'c': 3}
3.fromkeys
# dic之fromkeys()
dic = dict.fromkeys(['name', 'age', 'sex'], None)
print(f"dic: {dic}")
#給目錄賦予相同的值
4.setdefault
# dic之setdefault()粱栖,有指定key不會(huì)改變值话浇;無指定key則改變值
dic = {'a': 1, 'b': 2}
print(f"dic.setdefault('a'): {dic.setdefault('a',3)}")
print(f"dic: {dic}")
print(f"dic.setdefault('c'): {dic.setdefault('c',3)}")
print(f"dic: {dic}")
#dic.setdefault('a'): 1
#dic: {'a': 1, 'b': 2}
#dic.setdefault('c'): 3
#dic: {'a': 1, 'b': 2, 'c': 3}
4.需要記的單詞
- get 獲得
- update 更新
- fromkeys 生成一個(gè)字典,修改和添加
- setdefault 只添加不修改
- count 查找個(gè)數(shù)
- index 查找索引
- insert 具體某個(gè)位置插入
- pop 刪除 能顯示刪除的值
- remove 刪除 不能顯示刪除的值
- clear 清除元素
- copy 復(fù)制
- extend 延伸
- reverse 顛倒
- sort 排序
5.今日題目
-
有列表
data=['alex',49,[1900,3,18]]
闹究,分別取出列表中的名字幔崖,年齡,出生的年渣淤,月赏寇,日賦值給不同的變量:data=['alex',49,[1900,3,18]] name,age,data_1 = data year,month,day = data_1 print(name,age,year,month,day) ##################### data=['alex',49,[1900,3,18]] a,b,c = data d,e,f = c data = [a,b,d,e,f] keys = ['姓名','年齡','年','月','日'] dic= {} time = 0 while time < len(data): dic.setdefault(keys[time],data[time]) time += 1 print(dic)
用列表模擬隊(duì)列(最先進(jìn)入列表的元素會(huì)先出來):
# 答案,通過該答案模仿寫出第3題
lis = []
print(f"進(jìn)隊(duì)列前l(fā)is: {lis}")
# 進(jìn)隊(duì)列
for i in range(1, 6):
lis.append(i)
print(i)
print(f"結(jié)束進(jìn)入隊(duì)列l(wèi)is: {lis}")
# 出隊(duì)列
for i in range(len(lis)):
print(lis.pop(0))
print(f"出隊(duì)列后lis: {lis}")
-
用列表模擬堆棧(最后進(jìn)入列表的元素會(huì)先出來):
new_lis = [] for i in range(1,6): new_lis.append(i) new_lis.reverse() print(new_lis)
有如下列表价认,請(qǐng)按照年齡排序(涉及到匿名函數(shù)):
lis=[
{'name':'alex','age':84},
{'name':'oldboy','age':73},
{'name':'egon','age':18},
]
# 通過姓名排序參考(涉及匿名函數(shù)):
lis.sort(key=lambda item:item['name'])
lis.sort(key=lambda item:item['age'])
# 冒泡函數(shù)
lis = [
{'name' : 'yang','age' : 6 },
{'name' : 'wen','age' : 3 },
{'name' : 'yi','age' : 1 }
]
for i in range(len(lis)):
for j in range(i+1,len(lis)):
if lis[i]['age'] >lis[j]['age']:
lis[i],lis[j] = lis[j],lis[i]
print(lis)
-
有如下值集合
[11,22,33,44,55,66,77,88,99,90...]
嗅定,將所有大于 66 的值保存至字典的第一個(gè)key中,將小于 66 的值保存至第二個(gè)key的值中用踩,結(jié)果為
{'k1': 大于66的所有值, 'k2': 小于66的所有值}
:k1_list = [] k2_list = [] new_dict = {'k1':k1_list,"k2":k2_list} a = [11,22,33,44,55,66,77,88,99,90] for i in a: if i >=66: k1_list.append(i) elif i < 66: k2_list.append(i) print(new_dict)
統(tǒng)計(jì)
s='hello jason tank tank jason sean say hello dsb dsb sb'
中每個(gè)單詞的個(gè)數(shù)渠退,結(jié)果為`{'hello': 2, 'alex': 0, 'say': 1, 'sb': 1}
s='hello jason tank tank jason sean say hello dsb dsb sb'
hello_num = s.count('hello')
alex_num = s.count('alex')
sb_num = s.split().count('sb')
say_num = s.count('say')
new_dic = {'hello':hello_num,'alex':alex_num,'say':say_num,'sb':sb_num}
print(new_dic)
#{'hello': 2, 'alex': 0, 'say': 1, 'sb': 1}