1、为何要有字典?
一个key对应一个value,我只要知道key就能取出value。
2、字典的形式
dic = {‘name’:’dajiba’,’age’:18}
key的定义规则:
不可变
value的定义规则:
任意类型
3、字典的增删改查
增加:
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]
1、举个栗子
在没有集合的时候,我们表是一组名字是用列表。如下
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
会不会很麻烦?
2、使用集合来解决上面的痛点
创建一个数字集合
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
原文:http://www.cnblogs.com/Jo-king/p/6010218.html