基本數據類型
- 數字
- 字符串
- 列表 list
- 元組 tuple
- 字典 dict
- 布爾值 bool
列表和元組
列表:有序,元素可以被修改
元組:
- 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫元租的時候,推薦在最後加入','
- 索引:v = tu[0]
- 切片:v = tu[0:2]
- 可以被for循環,可迭代對象: for item in tu
- 轉換: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或者指定的值
-
.setdefault 設置值,若已存在,不設置,獲取當前key對應的值;不存在,設置值,獲取當前key對應的值
- .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"輸入有誤,請重新輸入")