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"输入有误,请重新输入")

猜你喜欢

转载自blog.51cto.com/14052013/2314472