python基礎05

3.3.3列表的嵌套

   一個列表中的元素又是一個鏈表,這就是列表的嵌套

3.3.4列表推導式

  列表推導式(列表生成式):用一個表達式創建一個有規律的列表或控制一個有規律的列表

   例子:

(1)# 需求列表 0 -20

# list1 = list(range(0, 21))

# print(list1)

 

# while 準備一個空列表,(i<21)然後range生成等差數列 把數字追加到空列表

# list2 = []

# i = 0

# while i<21:

#      list2.append(i)

#      i += 1

# print(list2)

 

# list3 = []

# for i in range(0, 21):

#      list3.append(i)

# print(list3)

 

# list4 = [i for i in range(0, 21)]

# print(list4)

 

(2)# 取0-20之間的偶數

# list5 = []

# for i in range(0, 21, 2):

#      list5.append(i)

# print(list5)

 

# list6 = []

# for i in range(0,21):

#      if i % 2 == 0:

#          list6.append(i)

# print(list6)

 

# list7 = [i for i in range(0,21, 2)]

# print(list7)

 

# list8 = [i for i in range(0, 21) if i % 2 == 0]

# print(list8)

 

# 生成10 666 列表

# list9 = ['aaa' for _ in range(10)]

# 因爲返回的數據和i沒有任何關係,所以把i替換成 _

# print(list9)

 

#mylist = ['daqiu', 10,'erqiu', 20, 'qiu', 'sanqiu']

# 循環遍歷迭代:要字符長度>=3

# len(str(i))

#list10 = [i for i in mylist if len(str(i)) >= 3]

#print(list10)

3.3.5列表常用技巧

  (1)合併列表

            方法一:+

                list3 = list1 + list2

            ②方法二:+=

                list1 += list2

            ③方法三:extend

                list1.extend(list2)

 (2)字符串與列表間的互轉

    ①字符串轉列表

     字符串名.split(“分割符號”)

注意:當split的小括號裏面什麼都不寫的時候,只要是空格或者\t都會被去掉

    ②列表轉字符串☆☆☆

     "分割符號".join(列表名)

     注意:當有混合類型時,用列表推導式:

# list4 = [1, 2, 3, 'abc', 'bcd']

# list5 = [str(i) for i in list4]

# print(list5)

# str5 = '_'.join(list5)

# print(str5)

(3)判斷某個數據是不是某個數據類型☆☆☆

        isinstance(數據,類型)

(4)enumerate☆☆☆

 返回一個列表,列表裏面包含的是下標和數據對應的元組。利用enumerate拆包,數據更加可控

    例子:

mylist = ['aa', 'bb', 'cc']

for i in enumerate(mylist):

    print(i)

print(list(enumerate(mylist)))

# print(id(mylist)) # id() 查看任何一個數據的內存地址

for key,value in enumerate(mylist):

    print(key)

    print(value)

3.4字典

3.4.1字典的使用和創建

(1)創建空字典

  ①手動創建:dict1{}

  ②用函數(方法):dict1 = dict()

 (2)創建有數據的字典

  ①鍵值對,各鍵值對之間用逗號隔開

     如:dict2 = {'name': 'python', 'age': 28}

  ② 用函數(方法):dict()

      如:dict4 = dict(name='aa', age=18)

    經典例子:

       dict5 = dict([('one',1),('two',2)])

       print(dict5)

 

dict6 = {}

dict7 = dict6.fromkeys(['aa', 'bb', 'cc'], 10)

#當字典的所有鍵的取值均是相同值時用fromkeys

print(dict7)

(3)取數據

   字典不支持下標,也就是說是無序的。字典通過鍵名取數據。

      如:print(dict2['name']) 

3.4.2字典_修改、增加和查找

(1)查找

 ① 字典通過鍵名查找數據,如果等號賦值,如果有這個鍵,則修改值;如果沒有,則新增這個鍵值對。如果僅查找鍵名,鍵名不存在時報錯

 ②get() 

通過鍵名查找數據,如果有這個鍵,則返回對應的值;如果沒有,默認返回None;

   注意:如果get設置了第二個參數,如果沒有這個鍵,則返回第二個參數(給自己一個提示)

 ③setdefault()

通過鍵名查找數據,如果有這個鍵,則返回對應的值,如果沒有默認返回None,同時會在字典中新增這個鍵值對,新增的鍵值對的key是查找的那個鍵名,value是None

  注意:如果setdefault設置了第二個參數,如果沒有這個鍵,則返回第二個參數,同時默認新增鍵值對。鍵名:第二個參數

(2)增加:update()既能修改又能新增

       語法:字典名1.update(字典名2)   #用2去更新1

如:

dict1 = {'name': 'python','age':28} 

       dict2 = {'name': 'gui', 'sex': 'man'}

       print(dict2)

    # 用2去更新1:既能修改又能新增

     dict1.update(dict2)

      print(dict1)

3.4.3字典_拷貝

 (1)淺拷貝:賦值型拷貝

 (2)深拷貝:copy()

 (3)copy模塊做拷貝

     import copy

     dict2 = copy.deepcopy(dict1)

   注意:這種方式的好處是複雜數據,添加的時候不影響彼此

發佈了51 篇原創文章 · 獲贊 2 · 訪問量 5938
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章