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_字典的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. Object C学习笔记13-Dictionary字典

    通过Array数组和Set集合的学习和理解,可以想象得到Dictionary也分为两种情况了,那就是可变和不可变两种类型的.的确如此,在Object C中提供了两个字典类,分别为NSDictionar ...

  3. Python学习笔记之字典

    一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...

  4. python3.5学习笔记--利用字典对指定文本字符串进行替换

    事情缘起于同事整理excel,需要批量的对某一列的内容进行替换. 举例: 数据格式:以下为一列内容,每行都在一个单元格中,目的是将数字替换为制定的中文字符. 1,2,31 ,4,33 ,21,, 对于 ...

  5. Objective -C学习笔记之字典

    //字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...

  6. 【Python学习笔记】字典操作

    字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...

  7. Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...

  8. Python学习笔记004_字典_集合

    >>> # 字典 用大括号表示, 它是影射类型,相当于java中的Map >>> >>> dict1 = {'李宁': '一切皆有可能', '耐克 ...

  9. Python学习笔记(2)-字典

    什么是字典? 像列表一样,但是不能想列表用下表索引,而是通过'键',键及其关联的值称为'键-值'对.字典经常会简写成dict 创建字典{} 例如: >>> dict = {'one' ...

随机推荐

  1. php上传图片到server

    php文件上传中会用到$_FILES系统函数 一.$_FILES系统函数 PHP编程语言中的常见的$_FILES系统函数使用方法有: $_FILES['myFile']['name'] 显示clien ...

  2. mysql 存储过程的应用

    MySQL存储过程的创建   (1). 格式 MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程參数[,...]]) [特性 ...] 过程体 这里先举个样例: mysq ...

  3. bootstrap注意事项(五)表单

    1.基本实例 单独的表单控件会被自动赋予一些全局样式.所有设置了 .form-control类的 <input>.<textarea> 和 <select> 元素都 ...

  4. lucene+盘古分词

    一般的网站都会有都会有搜索的功能,一般实现搜索主要有三种方案 第一种是最差的,也是最不推荐的,使用数据库的模糊查询例如select * form table where 字段 like XXX,这种查 ...

  5. WindowsService服务的C#实现

    WindowsService(简称服务,下同)是目前做客户端软件后台运行功能的非常好的选择,本文基本解决了服务的创建和编写,代码控制服务的安装.卸载.启动.停止等,为服务传递参数,其他注意事项等 1. ...

  6. Mantis 缺陷管理系统配置与安装[Z]

    什么是Mantis MantisBT is a free popular web-based bugtracking system (feature list). It is written in t ...

  7. Windows下Apache 虚拟主机 VirtualHost 配置

    以下方式适合原生 Apache, XAMPP 和 WAMP 套件 1.修改Apache配置文件(httpd.conf),如下: # Virtual hostsInclude conf/extra/ht ...

  8. HTTP协议中keep-alive

    一 . http协议是有连接的协议,这样每一个连接过来都要重新打开一个tcp的http socket,短期内同一个host 对服务器的请求就会很慢,若是能够保持住连接,就可以节省socket open ...

  9. ParseChat应用源码ios版

    ParseChat是一个完全原生的iPhone应用程序,用于创建实时的.基于文本的Parse聊天室.功能:支持多台设备之间的实时聊天,可动态添加新的聊天室,支持基本配置,可发送和接收音效以及任意大小的 ...

  10. hdu 5046 Airport 二分+重复覆盖

    题目链接 给n个点, 定义两点之间距离为|x1-x2|+|y1-y2|. 然后要选出k个城市建机场, 每个机场可以覆盖一个半径的距离. 求在选出点数不大于k的情况下, 这个半径距离的最大值. 二分半径 ...