1. 程式人生 > >Python學習之路——Python基礎之基本資料型別(列表、元組和字典)

Python學習之路——Python基礎之基本資料型別(列表、元組和字典)

基本資料型別

  • 數字
  • 字串
  • 列表 list
  • 元組 tuple
  • 字典 dict
  • 布林值 bool

列表和元組

列表:有序,元素可以被修改
元組:

  • 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫元租的時候,推薦在最後加入','
    1. 索引:v = tu[0]
    2. 切片:v = tu[0:2]
    3. 可以被for迴圈,可迭代物件: for item in tu
    4. 轉換:str <--> list <--> tuple
      Tips:元組中巢狀的列表的元素可以被修改

字典

dict:

info = {
    1:'asdf',
    "k1":'wqwr',
    True:"123",
    (11,22):123
    "kk3":(11.22)
}
  • 列表不能作為字典的Key,元組可以
  • 列表、字典不能作為字典的Key(True代表1,False代表0,注意重複)
  • 字典是無序的
  • 字典支援del刪除
  • 可for迴圈不可while迴圈
字典功能
  • .fromkeys 根據序列,建立字典,並指定統一的值
    dict.fromkeys(["k1",123,"999"],123)
  • .get 取字典的值,當key不存在時不會導致報錯,.get會返回None或者指定的值
    Python學習之路——Python基礎之基本資料型別(列表、元組和字典)
  • .setdefault 設定值,若已存在,不設定,獲取當前key對應的值;不存在,設定值,獲取當前key對應的值
    Python學習之路——Python基礎之基本資料型別(列表、元組和字典)

  • .update 更新字典中的值

練習

字典的查詢:

#!/usr/bin/env python
# -*- coding=utf-8 -*-
dic = {
    u"植物":
        {u"草本植物":
             [u"荷花", u"葉子", u"小草", u"菊花", u"蘭花", u"茉莉", u"葫蘆"],
         u"木本植物":
             [u"臘梅",u"梅花",u"玉蘭花",u"迎春花",u"榆葉梅",u"楊樹",u"蘋果"],
         u"水生植物":
             [u"荷花",u"蘆葦",u"香蒲",u"菰",u"水蔥",u"蘆竹",u"菖蒲",u"蒲葦"]
         },
    u"動物":
        {u"家禽":
            [u"小貓",u"小狗",u"小豬",u"蛇",u"小鳥",u"魚",u"老虎",u"獅子"],
         u"兩棲動物":
            [u"雨蛙",u"樹蛙",u"蟾蜍",u"大鯢",u"蠑螈",u"蚓螈",u"吻蚓",u"魚螈"],
         u"哺乳類動物":
            [u"貘樹懶",u"斑馬",u"狼",u"虎",u"老鼠",u"麋鹿",u"猴子",u"猞猁",u"穿山甲"]
         }
}
li = []
bi = []
go = True
while go:
    for i,v in enumerate(dic,1):
        print i,v
        li.append(v)
    scan_1 = input(">>>")
    while go:
        for i,v in enumerate(dic[li[scan_1 - 1]],1):
            print i,v
            bi.append(v)
        scan_2 = raw_input(">>>")
        if scan_2 == "b":
            break
        elif scan_2 == "q":
            go = False
            break
        elif scan_2 == "1" or scan_2 == "2" or scan_2 == "3":
            while go:
                for i, v in enumerate(dic[li[scan_1 - 1]][bi[int(scan_2) - 1]], 1):
                    print i, v
                scan_3 = raw_input(">>>>>")
                scan_3 = str(scan_3)
                scan_3 = scan_3.lower()
                if scan_3 == "b":
                    break
                elif scan_3 == "q":
                    go = False
                    break
                else:

                    print(u"輸入有誤,請重新輸入")
        else:
            print(u"輸入有誤,請重新輸入")