day5_python学习笔记_chapter7_字典
1. 内建方法fromkeys()创建一个默认字典, 字典中元素具有相同的值,默认为None
dict1 = {}.fromkeys(('x', 'y'), -1)
2. 访问字典中的值, for key in dict1.keys():
print 'key=%s, value=%s' % (key, dict1[key])
3. 删除字典元素和字典: del dict1['x'], dict1.clear():删除所有条目,del dict1 删除字典, dict1.pop('x', defalult): 删除x,并返回其value ,若不存在key,则 default
4. 字典比较算法: 1. 比较字典长度, 2. 比较字典额键值,3. 比较字典的值, 4. 完全匹配
5. 内建方法: dict1.keys(), dict1.values() ,dict1.items()
dict1.get(key,default), 返回key对应的value, 若不存在该key,则返回default的值
dict1.has_key(key)
dict1.update(dict2), 将字典dict2的键值对添加到字典dict1中
6. 利用dict1 存储用户名密码, 模拟用户登录注册功能
'''
Created on 2014-5-12
@author: jyp
'''
db = {}
def newuser():
prompt = 'login desired: '
while True:
name = raw_input(prompt)
if db.has_key(name):
prompt = 'name taken, try anthoer: '
continue
else:
break
pwd = raw_input('passwd: ')
db[name] = pwd
def olduser():
name = raw_input('login: ')
print name
print db
if db.has_key(name):
pwd = raw_input('passwd: ')
passwd = db.get(name)
if pwd == passwd:
print "welcome back: " , name
else:
print "password error"
else:
print "no this name"
def showmenu():
prompt = """
New User Login
Existing User Login
Quit
Enter choice: """
done = False
while not done:
chosen = False
while not chosen:
try:
choice = raw_input(prompt).strip()[0].lower()
except (EOFError, KeyboardInterrupt):
choice = 'q'
print '\n You picked: [%s]' % choice
if choice not in 'neq':
print 'invalid option , try again'
else:
chosen = True
if choice == 'q': done = True
if choice == 'n': newuser()
if choice == 'e': olduser()
if __name__ == '__main__':
showmenu()
----------------------------------------------------------------------------------------------------------------------------------------------
7. 集合类型
可变集合set: s = set('cheeseshop') set 不允许重复,元素有序。
增加元素,s.add('zzz'), s.uppdate('abcde') , s.remove('z') :删除元素 , s -= set('abcde'):删除abcde
不可变集合: t = frozenset('bookshop') ,
8. 集合的交差并补: 联合: '|', 交集:'&', 差集:'-', 差分/异或: '^'
9. 集合类型工厂函数: set和frozenset()
10. 集合类型内建方法:
s.issubset(t), s是否为t的子集
s.issuperset(t), s.symmetric_different(t): 该集合是s或者t的成员,但不是s和t共有的成员。
s.union(t), 并集, s.intersection(t), 交集, s.different(t):该集合是s的成员,但不是t的成员
s.copy(), 返回一个新集合, 潜复制
day5_python学习笔记_chapter7_字典的更多相关文章
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Object C学习笔记13-Dictionary字典
通过Array数组和Set集合的学习和理解,可以想象得到Dictionary也分为两种情况了,那就是可变和不可变两种类型的.的确如此,在Object C中提供了两个字典类,分别为NSDictionar ...
- Python学习笔记之字典
一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...
- python3.5学习笔记--利用字典对指定文本字符串进行替换
事情缘起于同事整理excel,需要批量的对某一列的内容进行替换. 举例: 数据格式:以下为一列内容,每行都在一个单元格中,目的是将数字替换为制定的中文字符. 1,2,31 ,4,33 ,21,, 对于 ...
- Objective -C学习笔记之字典
//字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
- Python学习笔记四--字典与集合
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...
- Python学习笔记004_字典_集合
>>> # 字典 用大括号表示, 它是影射类型,相当于java中的Map >>> >>> dict1 = {'李宁': '一切皆有可能', '耐克 ...
- Python学习笔记(2)-字典
什么是字典? 像列表一样,但是不能想列表用下表索引,而是通过'键',键及其关联的值称为'键-值'对.字典经常会简写成dict 创建字典{} 例如: >>> dict = {'one' ...
随机推荐
- iSlider手机平台JS滑动组件
iSlider手机平台JS滑动组件,无任何插件依赖.它能够处理任何元素,例如图片或者DOM元素.它有如下特性:能够自定义动画,自带的动画包括default, rotate, flip 和 depth你 ...
- JavaScript可以这样用
javascript:Qrlink(<%#Eval("ActivityType")%>,<%#Eval("ID")%>,<%#Ev ...
- 前端新人学习笔记-------html/css/js基础知识点(三)
这断时间家里有点事,上班也有点任务,所以几天没看视频没来更新了.今天来更新一下了. 一:默认样式重置 但凡是浏览默认的样式,都不要使用. body,p,h1,h2,h3,h4,h5,h6,dl,dd{ ...
- java:添加一条数据到数据库中文乱码
在数据库链接地址后面加上:characterEncoding=UTF8 如:jdbc\:mysql\://localhost\:3306/db_sjzdaj?relaxAutoCommit=true& ...
- Oracle中使用透明网关链接到Sqlserver[Z]
Oracle中使用透明网关链接到Sqlserver 在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是Linux上的, 而Linux上的O ...
- javascript 数组的常用操作函数
join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为“,”). 与之相反的一个方法是:Stri ...
- spring mybatis 整合问题Error parsing Mapper XML. Cause: java.lang.NullPointerException
14:30:40,872 DEBUG SqlSessionFactoryBean:431 - Parsed configuration file: 'class path resource [myba ...
- OSG报警特效学习总结
方法一:粒子系统 OSG的粒子系统有自己定义好的模块,如osgParticle::ExplosionEffect(爆炸模拟):osgParticle::SmokeEffect(烟雾模拟 ...
- windbg命令学习2
一.windbg查看内存命令: 当我们在调试器中分析问题时, 经常需要查看不同内存块的内容以分析产生的原因, 并且在随后验证所做出的假设是否正确. 由于各个对象的状态都是保存在内存中的, 因此内存的内 ...
- SQL Server 行的删除与修改-------------(未完待续P222 deep SQL Server 222 )
删除: 1.堆表:当行被删除时,不会自动重新组织页面上的空间.删除行时不会从物理页面上删除, 而只是把行偏移设置为 0 .表示空间没有使用.除了页面上没有被回收空间之外,堆中的 空白页也常常不会被回收 ...