Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法。

  1. clear 清空字典中的所有项。

我们可以把空字典赋给某一字典来清空它当中的项。也可以使用clear方法彻底清空字典。

x= {}
y=x
x[‘age‘]=‘25‘
x[‘gender‘]=‘male‘
print x 
x.clear()
print x 
print y 

{‘gender‘: ‘male‘, ‘age‘: ‘25‘}
{}
{}

如果将 x.clear 改为 x={},则结果变为

{‘gender‘: ‘male‘, ‘age‘: ‘25‘}
{}
{‘gender‘: ‘male‘, ‘age‘: ‘25‘}

2. 浅复制和深复制

前者指modify copy的字典的某个值时,原始字典中该值也会改变,反之亦然。

x= {}
x[‘age‘]=[‘25‘,‘26‘,‘28‘]  #List
x[‘gender‘]=‘male‘ #String
y=x.copy()
x[‘age‘].remove(‘25‘)
y[‘age‘].remove(‘26‘)
print x 
print y 

{‘gender‘: ‘male‘, ‘age‘: [‘28‘]}
{‘gender‘: ‘male‘, ‘age‘: [‘28‘]}

如果使用深度复制deepcopy,原字典和拷贝字典间完全独立

from copy import deepcopy
x= {}
x[‘age‘]=[‘25‘,‘26‘,‘28‘]  #List
x[‘gender‘]=‘male‘ #String
y=deepcopy(x)
x[‘age‘].append(‘25‘)
y[‘age‘].remove(‘26‘)
print x 
print y 
{‘gender‘: ‘male‘, ‘age‘: [‘25‘, ‘26‘, ‘28‘, ‘25‘]}
{‘gender‘: ‘male‘, ‘age‘: [‘25‘, ‘28‘]}

3. fromkeys 使用给定的keys创造一个字典,默认value为None

这里看看出了什么错误?

x= {}.fromkeys(‘name‘,‘gender‘)
print x 

{‘a‘: ‘gender‘, ‘e‘: ‘gender‘, ‘m‘: ‘gender‘, ‘n‘: ‘gender‘}

正确形式为

x= {}.fromkeys([‘name‘,‘gender‘])
print x 

{‘gender‘: None, ‘name‘: None}

4. get 可访问一个字典中不存在的项

x= {}
print x.get(‘age‘)
None

可响应用户输入字典中没有的项,更加灵活

几个比较简单的方法:

5. has_key 用于检查字典中是否有指定键,也可用 in 实现。

6. pop 用于获得给定键的值并将这一项从字典删去。

info = {
        ‘Alice‘: {
                ‘phone‘:‘2342‘,
                ‘addr‘:‘taierzhuang rd‘},
        ‘Bob‘:{
               ‘phone‘:‘2242‘,
                ‘addr‘:‘jinqiao rd‘}
        }
info.pop(‘Alice‘)
print info
{‘Bob‘: {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}}

7.setdefault用于添加键(可在键不存在的情况下添加键值,同get不一样的是它会改变原字典)

8.items & iteritems

items 以列表的形式返回字典中的项,iteritems返回一个迭代器

info = {
        ‘Alice‘: {
                ‘phone‘:‘2342‘,
                ‘addr‘:‘taierzhuang rd‘},
        ‘Bob‘:{
               ‘phone‘:‘2242‘,
                ‘addr‘:‘jinqiao rd‘}
        }
print info
print info.items()
print info.iteritems()
{‘Bob‘: {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}, ‘Alice‘: {‘phone‘: ‘2342‘, ‘addr‘: ‘taierzhuang rd‘}}
[(‘Bob‘, {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}), (‘Alice‘, {‘phone‘: ‘2342‘, ‘addr‘: ‘taierzhuang rd‘})]
<dictionary-itemiterator object at 0x10a200a48>

相同的,keys 和 iterkeys返回键,values和itervalues返回值。

9.update 利用一个字典的项更新另一个。

d={
    ‘title‘:‘Python web site‘,
    ‘url‘:‘http://www.python.org‘,
    ‘changed‘:‘April 4 20:18 2013‘
    }
x={‘title‘:‘Python Language Website‘}
print d.update(x)

注意此时输出None,不知道为什么,把上面最后一步分开写:

d.update(x)
print d
{‘url‘: ‘http://www.python.org‘, ‘changed‘: ‘April 4 20:18 2013‘, ‘title‘: ‘Python Language Website‘}
时间: 2024-10-16 13:49:35

Python学习笔记-字典(下)的相关文章

python学习笔记-Day8 下 (特殊方法、iter方法、super方法、有序字典实现、python单例模式)

使用特殊方法实现字典 # 使用像字典 dic['xx'] 带中括号的类使用 # 简要介绍 class Foo: # ① 对象[xx] 调用的方法 def __getitem__(self, item): return 'getitem' # ② 对象[xx] = xxx 调用的方法 def __setitem__(self, key, value): return 'setitem' # ③ del 对象[xx] 调用的方法 def __delitem__(self, key): return

Python学习笔记-字典(上)

字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成. 建立方法: 1.直接输入键值建立 items ={'apple':'$5','pear':'$4','banana':'6'} print items['apple'] $5 注意一定使用{ }, 否则成了列表. 2. 通过dict函数从列表建立 items =[['apple','$5'],['pear','$4'],['banana','6']] print items print items[0:1] ditems 

Python 学习笔记 - SQLAlchemy(下)

继续上一篇SQLAlchemy的学习之旅. 多对多表的创建 表Host和表HostUser通过表HostToHostUser关联在一起 from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index,Table

python学习笔记字典(四)

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 创建字典:  = {::} sh

Python学习笔记-字典

字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数来创建字典. len(d)d中项的数量.d[k]返回关联到键的值,d[k] = v给键赋值,del d[k]删除键k,k in d是否含有键k. 键类型,自动添加,成员资格. 字典的格式化字符串. 方法: 1.clear清除字典中所有的项.在原地操作. 2.copy浅复制,改变值对原数据无影响,删除

Python学习笔记:字典(dict)有关内容

字典是Python中唯一的映射类型.映射类型对象里哈希值(键:key),和指向的对象(值:value),是一对多的关系,也就是 字典的元素分为两个部分,分别是键和值,一个键对应一个值,键不能够重复,值可以重复. 1.创建字典. (1).字典是用大括号({})来包含元素的,基本创建就是直接赋值,键不能是元组或者列表,但是值可以是. >>> D = {'a':1,'b':2,'c':3}<span style="white-space:pre"> </s

Python学习笔记——字典

1.创建字典和给字典赋值,可以使用工厂方法dict()来创建字典,也可以使用fromkeys()来创建一个元素具有相同值的字典 >>> dict = {'name':'XiaoMing','age':20} >>> dict {'age': 20, 'name': 'XiaoMing'} >>> dict2 = dict((['x',1],['y',2])) >>> dict2 {'y': 2, 'x': 1} >>>

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

python学习笔记(五)之字典2

python学习笔记(五)之字典2编程实战中经常用到实例1:copy >> ad = {"name":"wtf","hig":"180"}>> bd = ad>> bd{'name': 'wtf', 'hig': '180'}>> id (ad)4539954352>> id (bd)4539954352说明:一个对象贴上两个标签,使用赋值,实现了所谓的"假