一、爲什麼要有字典?python
一個key對應一個value,我只要知道key就能取出value。linux
二、字典的形式app
dic = {‘name’:’dajiba’,’age’:18}測試
key的定義規則:google
不可變spa
value的定義規則:code
任意類型blog
三、字典的增刪改查utf-8
增長:rem
dic = {'name':'dajiba','age':18} dic['sex']='man' print(dic) 打印結果: {'sex': 'man', 'age': 18, 'name': 'dajiaba'}
刪除:
有一個萬能的刪除法
dic={'name':'dajiaba','age':18} del dic['name'] print(dic) 打印結果 刪除了name {'age': 18}
改
dic={'name':'dajiaba','age':18} dic['name']='jixuege' print(dic) 打印結果 {'age': 18, 'name': 'jixuege'}
查
dic={'name':'dajiaba','age':18} #查詢,若是沒有回報錯 print(dic['name']) #查詢,若是沒有不會報錯 print(dic.get('name')) 打印結果: dajiaba dajiaba
要求:
永遠的痛,下面就附上幾個實現的方法:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Author: Leon xie
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'網易':{},
'google':{}
},
'中關村':{
'愛奇藝':{},
'汽車之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'包子':{},
'北航':{},
},
'天通苑':{},
'回龍觀':{},
},
'朝陽':{},
'東城':{},
},
'上海':{
'閔行':{
"人民廣場":{
'炸雞店':{}
}
},
'閘北':{
'火車戰':{
'攜程':{}
}
},
'浦東':{},
},
'山東':{},
}
new_menu=menu
menu_level=[]
while True:
for key in new_menu:
print(key)
choice = input("請輸入你的選擇>>")
if len(choice) == 0:continue
if choice == "b":
if len(menu_level) ==0:break
new_menu=menu_level[-1]
menu_level.pop()
if choice not in new_menu:continue
menu_level.append(new_menu)
new_menu=new_menu[choice]
一、舉個栗子
在沒有集合的時候,咱們表是一組名字是用列表。以下
Python_list=['dajiba','lhf','pangfeng']
linux_list=['xiaoming','laowang','alex','lhf']
both=[]
那麼我要取2個列表相同的東西,就須要使用下面的for循環
for name in linux_list:
if name in Python_list:
both.append(name)
print(name)
打印結果
lhf
會不會很麻煩?
二、使用集合來解決上面的痛點
建立一個數字集合
s = set([3,5,9,10]) 它的輸出結果就是 s ={9, 10, 3, 5}是同樣的。
t = set("Hello") 它的輸出結果就是 t = {'e', 'H', 'l', 'o'}
集合是一個無序的,不重複的數據組合,它的主要做用以下:
* 去重,把一個列表變成集合,就自動去重了,如上所示
* 關係測試,測試兩組數據之間的交集、差集、並集等關係。
經常使用操做:
a= t | s # 表示t 和 s的並集
b= t & s # 表示 t 和 s的交集
c= t - s # 差集(在t不在s中)
d = t ^ s #對稱差集(項在t或s中,但不會同時出如今這兩者中)
基本操做以下:
# 添加一項
t = set("Hello")
t.add('x')
print(t)
打印結果以下:
{'e', 'o', 'l', 'H', 'x'}
#在s中添加多項
s = set([3,5,9,10])
t = set("Hello")
s.update([10,12,13,13])
print(s)
打印結果以下:
{3, 5, 9, 10, 12, 13}
使用remove()能夠刪除一項:
t = set("Hello")
t.remove('H')
print(t)
打印結果以下:
{'o', 'l', 'e'}
長度
s = set([3,5,9,10])
print(len(s))
打印結果以下:
測試x是不是s的成員
x in s
測試x 是否不是s的成員
x not in s
測試是否s中的每個元素都在t中
print(s.issubset(t))或
s <= t
打印結果
False
測試是否t中的每個元素都在s中s.issuperset(t)或者s>=t 並集print(s|t)打印結果{'l', 3, 5, 'e', 'o', 9, 10}或者是s.union(t) 交集print(s.intersection(t))或者s & t s中有可是t中沒有的元素s.difference(t)或者s - t