學習python的第十天(內置算法:列表數據類型,元祖數據類型,字典數據類型)

5.8自我總結

1.列表類型內置算法

1.必須掌握

1.按索引取值(正向取值+反向取值),便可存也能夠取

#用於取其中一個值
name = ['yang','wen','yi']
##正方向取wen,也就是從左到右
pritn(name[1])
##正方向取wen,也就是從右到左
print(name[-2])

2.切片

#用於取多個值
name = ['yang','wen','yi']
#取其中的yang wen
print(name[0:2])  #和字符串相似顧頭不顧尾
print(name[0:-1])
print(name[-3:-1])
print(name[:2])    #這兩個是上面基礎上精簡的
print(name[:-1])

3.長度len

#用於長度3
name = ['yang','wen','yi']
print(len(name))

4.成員運算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.循環

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')  #加入後那個值的位置,加入的值
print(f"name_list: {name_list}")

2.pop

# list之pop(),pop()默認刪除最後一個元素,刪除一個元素
name_list = ['nick', 'jason', 'tank', 'sean']

print(f"name_list.pop(1): {name_list.pop(1)}")  #會顯示刪除的值
print(f"name_list: {name_list}")

3.remove

# list之remove() 刪除一個元素
name_list = ['nick', 'jason', 'tank', 'sean']

print(f"name_list.remove('nick'): {name_list.remove('nick')}")  #會輸出None

4.count

# list之count()     #x顯示對於值的個數
name_list = ['nick', 'jason', 'tank', 'sean']

print(f"name_list.count('nick'): {name_list.count('nick')}")

5.index

查找索引python

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']  翻轉

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,一個值或者多個值

多個值app

4.有序或者無序

有序函數

5.可變或者不可變

可變code

2.元祖類型

1.定義

(),中間加元素用,隔開排序

2.用法

(與列表類似,區別是能夠讀取不可存儲改變,列表中關於存儲或者更名元素的內容內置函數元祖不行)索引

  1. 索引取值
  2. 切片(顧頭不顧尾,步長)
  3. 長度len
  4. 成員運算in和not in
  5. 循環
  6. count
  7. index

3.一個值或者多個值隊列

多個值rem

4.有序或者無序字符串

有序

5.可變或者不可變

不可變

3.字典數據類型內置算法

1.必須掌握

1.按key存取值:可存可取

dict = {'name':'yang','age':18}
#取 姓名
dict[name]

2.長度len

dict = {'name':'yang','age':18}
#取 長度
len(dict)

3.成員運算in和not in

判斷有無key而不是值

4.刪除del

dict = {'name':'yang','age':18}
#刪除名字
dal dict[name]

5.鍵keys()、值values()、鍵值對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.循環

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取值有點相似區別就是取不到不會報錯,可是不能用get來更換值

2.update

# dic之update()
dic1 = {'a': 1, 'b': 2}
dic2 = {'c': 3}#若是dic2與dic1中key有相同的,則不會增長新的key更新值,若是沒有相同的則會添加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不會改變值;無指定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.須要記的單詞

  1. get 得到
  2. update 更新
  3. fromkeys 生成一個字典,修改和添加
  4. setdefault 只添加不修改
  5. count 查找個數
  6. index 查找索引
  7. insert 具體某個位置插入
  8. pop 刪除 能顯示刪除的值
  9. remove 刪除 不能顯示刪除的值
  10. clear 清除元素
  11. copy 複製
  12. extend 延伸
  13. reverse 顛倒
  14. sort 排序

5.今日題目

  1. 有列表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)
  2. 用列表模擬隊列(最早進入列表的元素會先出來):
# 答案,經過該答案模仿寫出第3題
lis = []

print(f"進隊列前lis: {lis}")

# 進隊列
for i in range(1, 6):
    lis.append(i)
    print(i)

print(f"結束進入隊列lis: {lis}")

# 出隊列
for i in range(len(lis)):
    print(lis.pop(0))
    
print(f"出隊列後lis: {lis}")
  1. 用列表模擬堆棧(最後進入列表的元素會先出來):

    new_lis = []
    for i in range(1,6):
     new_lis.append(i)
    new_lis.reverse()
    print(new_lis)
  2. 有以下列表,請按照年齡排序(涉及到匿名函數):
lis=[
    {'name':'alex','age':84},
    {'name':'oldboy','age':73},
    {'name':'egon','age':18},
]

# 經過姓名排序參考(涉及匿名函數):

lis.sort(key=lambda item:item['name'])


lis.sort(key=lambda item:item['age'])
# 冒泡函數
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)
  1. 有以下值集合[11,22,33,44,55,66,77,88,99,90...],將全部大於 66 的值保存至字典的第一個key中,將

    小於 66 的值保存至第二個key的值中,結果爲{'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)
  2. 統計s='hello jason tank tank jason sean say hello dsb dsb sb'中每一個單詞的個數,結果爲`{'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}
相關文章
相關標籤/搜索