`
webcode
  • 浏览: 6078385 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

python学习(第四章)

 
阅读更多

字典: 当索引不好用时

字典是python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里。键可以是数字、字符窜甚至是元组。

字典的使用

  • 为什么需要字典

    >>>names = ['Alice', 'Betch', 'Cecil', 'Dee-Dee', 'Earl']
    >>>numbers = ['2341', '9102', '3158', '0142', '5551']
    >>>numbers[names.index('Cecil')] 3158 ##创建和使用字典
    
  • 字典可以通过下面的方式创建:

    >>>phonebook = {'Alice': '2341', 'Beth': '9012', 'Cecil': '3258'}
    

    每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号括起来
    [注: 字典中的键是唯一的,而值并不唯一]

dict函数

  • 可以用dict函数,通过其他映射或(键, 值)这样的序列对建立字典

    >>>items = [('name', 'Gumby'), ('age', '42')]
    >>>d = dict(items) >>>d {'age': 42, 'name': 'Gumby'}
    >>>d['name'] 'Gumby'
    

    如果不带任何参数,则dict函数返回一个新的空字典

基本字典操作

  • 字典的基本行为在很多方面与序列类似:

    • len(d)返回d中项的数量
    • d[k]返回关联到k上的值
    • d[k] = v将值v关联到键k上
    • del d[k]删除键为k的项
    • k in d检查d中是否含有键为k的项
    • 字典和列表的区别:
    • 键类型: 字典的键不一定为整数数据(也可能是),也可能是其他不可变类型。
    • 自动添加: 即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项
    • 成员资格: 表达式k in d(d为字典)查找的是键,而不是值。表达式v in l( l为列表)则用来查找值,而非索引。

    [注: 在字典中查找键的成员资格比在列表中检查值的成员资格更有效,数据结构的规模越大,两者的效率差距越明显]

  • 示例4-1


 # 简单数据库
# 使用人名作为键的字典。每个人用另一个字典来表示,其见为'phone'
# 和‘addr’分别表示他们的电话号码和地址
people = { 'Alice': {
'phone': '2341',
'addr': 'Foo drive 23'
},
'Beth': {
'phone': '9102',
'addr': 'Bar street 42'
},
'Cecil': {
'phone': '3158',
'addr': 'Baz avenue 90'
}
}
# 针对电话号码和地址使用的描述性标签,会在打印输出的时候用到
labels = {
'phone': 'phone number',
'addr': 'address'
}
name = raw_input('Name: ')
# 查找电话号码还是地址? 使用正确的键
request = raw_input('Key (p or a): ')
# 使用正确的键:
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# 如果名字是字典中有效键才打印信息:
if name in people: print "%s's %s is %s." % \
(name, label[key], people[name][key])


 $./4-1.py
Name: Beth
Key (p or a): p
Beth's phone number is 9102.

字典的格式化字符串

  • 在每个转换说明符中的%字符后面,可以加上(用圆括号括起来)键,后面再跟上其他的说明符

    >>>phonebook = {'Beth': '9102', 'Alice': '2314', 'Cecil': '3258'}
    >>>"Cecil's phone number is $(Cecil)s." % phonebook
    "Cecil's phone number is 3258."
    
  • 这类字符串格式化在模板系统中非常有用(例如HTML):

    >>>template = '''<html>
    <head><title>%(title)s</title></head>
    <body>
    <h1>%(title)s</h1>
    <p>%(text)s</p>
    </body>
    </html>'''
    >>>data = {'title': 'My Home Page', 'text': 'Welcom to my home page!'}
    >>>print template % data
    <html>
    <head><title>My Home Page</title></head>
    <body>
    <h1>My Home Page</h1>
    <p>Welcom to my home page</p>
    </body>
    </html>
    

字典方法

  1. clear

    • clear方法清除字典中所有项。这个操作无返回值(或说返回None)

      >>>d = {}
      >>>d['name'] = 'Gumby'
      >>>d['age'] = '42'
      >>>d
      {'age': '42', 'name': 'Gumby'}
      >>>return_value = d.clear()
      >>>d
      {}
      >>>print return_value
      None
      
    • 为什么需要clear

      >>>x = {}
      >>>y = x
      >>>x['key'] = 'value'
      >>>y
      {'key': 'value'}
      >>>x = {}
      >>>y
      {'key': 'value'}
      >>>x = {}
      >>>y = x
      >>>x['key'] = 'value'
      >>>y
      {'key': 'value'}
      >>>x.clear()
      >>>y
      {}
      

      两种情况中,x和y最初对应同一个字典。情况一中,通过将x关联到一个新的空字典来"清空"它,对y一点影响也没有,它还是关联到原先的字典。这可能是所需要的行为,但是如果真的想清空原始字典中所有的元素,必须使用clear方法。

  2. copy

    • copy方法返回一个具有相同键-值对的新字典

      >>>x = {'username': 'admin', 'machines': ['foo', 'bar', 'bza']}
      >>>y = x.copy()
      >>>y['username'] = 'mlh'
      >>>y['machines'].remove('bar')
      >>>y
      {'username': 'mlh', 'machines': ['foo', 'baz']}
      >>>x
      {'username': 'admin', 'machines': ['foo', 'baz']}
      
    • copy实现的是浅复制,当在副本中替换指的时候,原始字典不受影响,但是,如果修改了某个值(原地修改,而非替换),原始的字典也会改变,应为同样的值也存储在原字典中。*为避免上述问题,可使用深复制,复制其包含所有的值。可以使用copy模块的deepcopy函数来完成:

      >>>from copy import deepcopy
      >>>d = {}
      >>>d['names'] = ['Alfred', 'Bertrand']
      >>>c = d.copy()
      >>>dc = deepcopy(d)
      >>>d'names'].append('Clive')
      >>>c
      {'names': ['Alfred', 'Bertrand', 'Clive']}
      >>>dc
      {'names': ['Alfred', 'Bertrand']}
      
  3. fromkeys

    • fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None。

      >>>{}.fromkeys(['name', 'age'])
      {'age': None, 'name': None}
      
    • 可以直接在所有字典的类型dict上面调用方法:

      >>>dict.fromkeys(['name', 'age')
      {'age': None, 'name': None}
      
    • 如果不想使用None作为默认值,也可以自己提供默认值

      >>>dict.fromkeys(['name', 'age'], '(unknown)')
      {'age': '(unknown)', 'name': '(unknown)'}
      
  4. get

    • get方法是个更宽松的访问字典项的方法。一般来说,如果试图访问字典中不存在的项会出错

      >>>d = {}
      >>>print d['name']
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      KeyError: 'name'
      >>>print d.get('name')
      None
      
    • 当使用get访问一个不存在的键时,没有任何异常,而得到了None值。还可以定义"默认"值,替换None:

      >>>d = {}
      >>>d.get('name', 'N/A')
      'N/A'
      
    • 如果键存在,get用起来就像普通的字典查询一样:

      >>>d = {}
      >>>d['name'] = 'Eric'
      >>>d.get('name')
      'Eric'
      
    • 很好奇两件事,再次做验证:

      >>>d['name'] = 'Eric'
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      NameError: name 'd' is not defined
      
      1. 由上述知,变量需先定义再使用。

        >>>d = {}
        >>>d['name'] = 'Eric'
        >>>d.get('name', 'N/A')
        'Eric'
        
      2. 由上述知,当使用get访问一个键时,并且自定义"默认"值,如果键存在,则值为键对应的值,否则,值为None。

    • 示例4-2


     # 使用get()的简单数据库
    people = {
    'Alice': {
    'phone': '2341',
    'addr': 'Foo drive 23'
    },
    'Beth': {
    'phone': '9102',
    'addr': 'Bar street 42'
    },
    'Cecil': {
    'phone': '3158',
    'addr': 'Baz avenue 90'
    }
    }
    labels = {
    'phone': 'phone number',
    'addr': 'address'
    }
    name = raw_input('Name: ')
    request = raw_input('Phone number (p) or address (a)? ')
    key = request
    if request == 'p': key = 'phone'
    if request == 'a': key = 'addr'
    # 使用get()提供默认值
    person = people.get(name, {})
    label = labels.get(key, key)
    result = person.get(key, 'not available')
    print "%s's %s is %s." % (name, label, result)
    


 $./4-2.py
Name: Alice
phone number (p) or address(a)? p
Alice's phone number is 2341.

  1. has_key

    • has_key方法可以检查字典中是否含有给出的键。表达式d.has_key(k)相当于表达式k in d

      >>>d = {}
      >>>d.has_key('name')
      False
      >>>d['name'] = 'Eric'
      >>>d.has_key('name')
      True
      
  2. items和iteritems

    • items方法将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键, 值)。但是项在返回时并没有特殊顺序。

      >>>d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
      >>>d.items()
      [('url': 'http://www.python.org', ('spam', 0), ('title', 'Python Web
      Site')]
      
    • iteritems方法的作用大致相同,但是会返回一个迭代器对象而不是列表:

      >>>d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
      >>>it = d.iteritems()
      >>>it
      <dictionary-iterator object at 169050>
      >>>list(it) # Convert the iterator to a list
      [('url': 'http://www.python.org', ('spam', 0), ('title', 'Python Web
      Site')]
      
  3. keys和iterkeys

    • keys方法将字典中的以列表形式返回,而iterkeys则返回针对键的迭代器

      >>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
      >>> d.keys()
      ['url', 'spam', 'title']
      >>> it = d.iterkeys()
      >>> it
      <dictionary-keyiterator object at 0x9b9bc5c>
      >>> list(it)
      ['url', 'spam', 'title']
      
  4. pop

    • pop方法用来获得对应于给定键的值,然后每个键-值对从字典中移除

      >>> d = {'x': 1, 'y': 2}
      >>> d.pop('x')
      1
      >>> d
      {'y': 2}
      
  5. popitem

    • popitem方法类似于list.pop,后者会弹出列表的最后一个元素。但不同的是,popitem弹出随机的项,因为字典并没有"最后的元素"或其他有关顺序的概念。

      >>> d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}
      >>> d
      {'url': 'http://www.python.org', 'spam': 0, 'title': 'Python'}
      >>> d.popitem()
      ('url', 'http://www.python.org')
      >>> d.popitem()
      ('spam', 0)
      >>> d.popitem()
      ('title', 'Python')
      >>> d
      {}
      
  6. setdefault

    • setdefault方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,除此之外,setdefault还能在字典中不含有给给定键的情况下设定相应的键值。

      >>> d = {}
      >>> d.setdefault('name', 'N/A')
      'N/A'
      >>> d
      {'name': 'N/A'}
      >>> d['name'] = 'Gumby'
      >>> d.setdefault('name', 'N/A')
      'Gumby'
      >>> d
      {'name': 'Gumby'}
      
    • 当键不存在的时候,setdefault返回默认值并且相应的更新字典。如果键存在,那么就返回与其对应的值,但不改变字典。

      >>> d = {}
      >>> print d.setdefault('name')
      None
      >>> d
      {'name': None}
      
  7. update

    • update方法可以利用一个字典项更新另一个字典

      >>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'change': 'Mar 14 22:09:15 MET 2008'}
      >>> x = {'title': 'Python Language Website'}
      >>> d.update(x)
      >>> d
      {'url': 'http://www.python.org', 'change': 'Mar 14 22:09:15 MET 2008', 'title': 'Python Language Website'}
      
    • 提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖。

  8. values和itervalues

    • values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。与返回键的列表不同的是,返回值的列表中可以包含重复的元素

      >>> d = {}
      >>> d[1] = 1
      >>> d[2] = 2
      >>> d[3] = 3
      >>> d[4] = 1
      >>> d.values()
      [1, 2, 3, 1]
      >>> it = d.itervalues()
      >>> it
      <dictionary-valueiterator object at 0xa05ac34>
      >>> list(it)
      [1, 2, 3, 1]
      

字典: 当索引不好用时

字典是python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里。键可以是数字、字符窜甚至是元组。

字典的使用

  • 为什么需要字典

    >>>names = ['Alice', 'Betch', 'Cecil', 'Dee-Dee', 'Earl']
    >>>numbers = ['2341', '9102', '3158', '0142', '5551']
    >>>numbers[names.index('Cecil')] 3158 ##创建和使用字典
    
  • 字典可以通过下面的方式创建:

    >>>phonebook = {'Alice': '2341', 'Beth': '9012', 'Cecil': '3258'}
    

    每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号括起来
    [注: 字典中的键是唯一的,而值并不唯一]

dict函数

  • 可以用dict函数,通过其他映射或(键, 值)这样的序列对建立字典

    >>>items = [('name', 'Gumby'), ('age', '42')]
    >>>d = dict(items) >>>d {'age': 42, 'name': 'Gumby'}
    >>>d['name'] 'Gumby'
    

    如果不带任何参数,则dict函数返回一个新的空字典

基本字典操作

  • 字典的基本行为在很多方面与序列类似:

    • len(d)返回d中项的数量
    • d[k]返回关联到k上的值
    • d[k] = v将值v关联到键k上
    • del d[k]删除键为k的项
    • k in d检查d中是否含有键为k的项
    • 字典和列表的区别:
    • 键类型: 字典的键不一定为整数数据(也可能是),也可能是其他不可变类型。
    • 自动添加: 即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项
    • 成员资格: 表达式k in d(d为字典)查找的是键,而不是值。表达式v in l( l为列表)则用来查找值,而非索引。

    [注: 在字典中查找键的成员资格比在列表中检查值的成员资格更有效,数据结构的规模越大,两者的效率差距越明显]

  • 示例4-1


 # 简单数据库
# 使用人名作为键的字典。每个人用另一个字典来表示,其见为'phone'
# 和‘addr’分别表示他们的电话号码和地址
people = { 'Alice': {
'phone': '2341',
'addr': 'Foo drive 23'
},
'Beth': {
'phone': '9102',
'addr': 'Bar street 42'
},
'Cecil': {
'phone': '3158',
'addr': 'Baz avenue 90'
}
}
# 针对电话号码和地址使用的描述性标签,会在打印输出的时候用到
labels = {
'phone': 'phone number',
'addr': 'address'
}
name = raw_input('Name: ')
# 查找电话号码还是地址? 使用正确的键
request = raw_input('Key (p or a): ')
# 使用正确的键:
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# 如果名字是字典中有效键才打印信息:
if name in people: print "%s's %s is %s." % \
(name, label[key], people[name][key])


 $./4-1.py
Name: Beth
Key (p or a): p
Beth's phone number is 9102.

字典的格式化字符串

  • 在每个转换说明符中的%字符后面,可以加上(用圆括号括起来)键,后面再跟上其他的说明符

    >>>phonebook = {'Beth': '9102', 'Alice': '2314', 'Cecil': '3258'}
    >>>"Cecil's phone number is $(Cecil)s." % phonebook
    "Cecil's phone number is 3258."
    
  • 这类字符串格式化在模板系统中非常有用(例如HTML):

    >>>template = '''<html>
    <head><title>%(title)s</title></head>
    <body>
    <h1>%(title)s</h1>
    <p>%(text)s</p>
    </body>
    </html>'''
    >>>data = {'title': 'My Home Page', 'text': 'Welcom to my home page!'}
    >>>print template % data
    <html>
    <head><title>My Home Page</title></head>
    <body>
    <h1>My Home Page</h1>
    <p>Welcom to my home page</p>
    </body>
    </html>
    

字典方法

  1. clear

    • clear方法清除字典中所有项。这个操作无返回值(或说返回None)

      >>>d = {}
      >>>d['name'] = 'Gumby'
      >>>d['age'] = '42'
      >>>d
      {'age': '42', 'name': 'Gumby'}
      >>>return_value = d.clear()
      >>>d
      {}
      >>>print return_value
      None
      
    • 为什么需要clear

      >>>x = {}
      >>>y = x
      >>>x['key'] = 'value'
      >>>y
      {'key': 'value'}
      >>>x = {}
      >>>y
      {'key': 'value'}
      >>>x = {}
      >>>y = x
      >>>x['key'] = 'value'
      >>>y
      {'key': 'value'}
      >>>x.clear()
      >>>y
      {}
      

      两种情况中,x和y最初对应同一个字典。情况一中,通过将x关联到一个新的空字典来"清空"它,对y一点影响也没有,它还是关联到原先的字典。这可能是所需要的行为,但是如果真的想清空原始字典中所有的元素,必须使用clear方法。

  2. copy

    • copy方法返回一个具有相同键-值对的新字典

      >>>x = {'username': 'admin', 'machines': ['foo', 'bar', 'bza']}
      >>>y = x.copy()
      >>>y['username'] = 'mlh'
      >>>y['machines'].remove('bar')
      >>>y
      {'username': 'mlh', 'machines': ['foo', 'baz']}
      >>>x
      {'username': 'admin', 'machines': ['foo', 'baz']}
      
    • copy实现的是浅复制,当在副本中替换指的时候,原始字典不受影响,但是,如果修改了某个值(原地修改,而非替换),原始的字典也会改变,应为同样的值也存储在原字典中。*为避免上述问题,可使用深复制,复制其包含所有的值。可以使用copy模块的deepcopy函数来完成:

      >>>from copy import deepcopy
      >>>d = {}
      >>>d['names'] = ['Alfred', 'Bertrand']
      >>>c = d.copy()
      >>>dc = deepcopy(d)
      >>>d'names'].append('Clive')
      >>>c
      {'names': ['Alfred', 'Bertrand', 'Clive']}
      >>>dc
      {'names': ['Alfred', 'Bertrand']}
      
  3. fromkeys

    • fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None。

      >>>{}.fromkeys(['name', 'age'])
      {'age': None, 'name': None}
      
    • 可以直接在所有字典的类型dict上面调用方法:

      >>>dict.fromkeys(['name', 'age')
      {'age': None, 'name': None}
      
    • 如果不想使用None作为默认值,也可以自己提供默认值

      >>>dict.fromkeys(['name', 'age'], '(unknown)')
      {'age': '(unknown)', 'name': '(unknown)'}
      
  4. get

    • get方法是个更宽松的访问字典项的方法。一般来说,如果试图访问字典中不存在的项会出错

      >>>d = {}
      >>>print d['name']
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      KeyError: 'name'
      >>>print d.get('name')
      None
      
    • 当使用get访问一个不存在的键时,没有任何异常,而得到了None值。还可以定义"默认"值,替换None:

      >>>d = {}
      >>>d.get('name', 'N/A')
      'N/A'
      
    • 如果键存在,get用起来就像普通的字典查询一样:

      >>>d = {}
      >>>d['name'] = 'Eric'
      >>>d.get('name')
      'Eric'
      
    • 很好奇两件事,再次做验证:

      >>>d['name'] = 'Eric'
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      NameError: name 'd' is not defined
      
      1. 由上述知,变量需先定义再使用。

        >>>d = {}
        >>>d['name'] = 'Eric'
        >>>d.get('name', 'N/A')
        'Eric'
        
      2. 由上述知,当使用get访问一个键时,并且自定义"默认"值,如果键存在,则值为键对应的值,否则,值为None。

    • 示例4-2


     # 使用get()的简单数据库
    people = {
    'Alice': {
    'phone': '2341',
    'addr': 'Foo drive 23'
    },
    'Beth': {
    'phone': '9102',
    'addr': 'Bar street 42'
    },
    'Cecil': {
    'phone': '3158',
    'addr': 'Baz avenue 90'
    }
    }
    labels = {
    'phone': 'phone number',
    'addr': 'address'
    }
    name = raw_input('Name: ')
    request = raw_input('Phone number (p) or address (a)? ')
    key = request
    if request == 'p': key = 'phone'
    if request == 'a': key = 'addr'
    # 使用get()提供默认值
    person = people.get(name, {})
    label = labels.get(key, key)
    result = person.get(key, 'not available')
    print "%s's %s is %s." % (name, label, result)
    


 $./4-2.py
Name: Alice
phone number (p) or address(a)? p
Alice's phone number is 2341.

  1. has_key

    • has_key方法可以检查字典中是否含有给出的键。表达式d.has_key(k)相当于表达式k in d

      >>>d = {}
      >>>d.has_key('name')
      False
      >>>d['name'] = 'Eric'
      >>>d.has_key('name')
      True
      
  2. items和iteritems

    • items方法将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键, 值)。但是项在返回时并没有特殊顺序。

      >>>d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
      >>>d.items()
      [('url': 'http://www.python.org', ('spam', 0), ('title', 'Python Web
      Site')]
      
    • iteritems方法的作用大致相同,但是会返回一个迭代器对象而不是列表:

      >>>d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
      >>>it = d.iteritems()
      >>>it
      <dictionary-iterator object at 169050>
      >>>list(it) # Convert the iterator to a list
      [('url': 'http://www.python.org', ('spam', 0), ('title', 'Python Web
      Site')]
      
  3. keys和iterkeys

    • keys方法将字典中的以列表形式返回,而iterkeys则返回针对键的迭代器

      >>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
      >>> d.keys()
      ['url', 'spam', 'title']
      >>> it = d.iterkeys()
      >>> it
      <dictionary-keyiterator object at 0x9b9bc5c>
      >>> list(it)
      ['url', 'spam', 'title']
      
  4. pop

    • pop方法用来获得对应于给定键的值,然后每个键-值对从字典中移除

      >>> d = {'x': 1, 'y': 2}
      >>> d.pop('x')
      1
      >>> d
      {'y': 2}
      
  5. popitem

    • popitem方法类似于list.pop,后者会弹出列表的最后一个元素。但不同的是,popitem弹出随机的项,因为字典并没有"最后的元素"或其他有关顺序的概念。

      >>> d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}
      >>> d
      {'url': 'http://www.python.org', 'spam': 0, 'title': 'Python'}
      >>> d.popitem()
      ('url', 'http://www.python.org')
      >>> d.popitem()
      ('spam', 0)
      >>> d.popitem()
      ('title', 'Python')
      >>> d
      {}
      
  6. setdefault

    • setdefault方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,除此之外,setdefault还能在字典中不含有给给定键的情况下设定相应的键值。

      >>> d = {}
      >>> d.setdefault('name', 'N/A')
      'N/A'
      >>> d
      {'name': 'N/A'}
      >>> d['name'] = 'Gumby'
      >>> d.setdefault('name', 'N/A')
      'Gumby'
      >>> d
      {'name': 'Gumby'}
      
    • 当键不存在的时候,setdefault返回默认值并且相应的更新字典。如果键存在,那么就返回与其对应的值,但不改变字典。

      >>> d = {}
      >>> print d.setdefault('name')
      None
      >>> d
      {'name': None}
      
  7. update

    • update方法可以利用一个字典项更新另一个字典

      >>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'change': 'Mar 14 22:09:15 MET 2008'}
      >>> x = {'title': 'Python Language Website'}
      >>> d.update(x)
      >>> d
      {'url': 'http://www.python.org', 'change': 'Mar 14 22:09:15 MET 2008', 'title': 'Python Language Website'}
      
    • 提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖。

  8. values和itervalues

    • values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。与返回键的列表不同的是,返回值的列表中可以包含重复的元素

      >>> d = {}
      >>> d[1] = 1
      >>> d[2] = 2
      >>> d[3] = 3
      >>> d[4] = 1
      >>> d.values()
      [1, 2, 3, 1]
      >>> it = d.itervalues()
      >>> it
      <dictionary-valueiterator object at 0xa05ac34>
      >>> list(it)
      [1, 2, 3, 1]
      
分享到:
评论

相关推荐

    python学习第四章-程序流程控制

    python学习第四章-程序流程控制

    清华大学精品Python学习PPT课件-第3章 Python流程控制.pptx

    清华大学精品Python学习PPT课件-第4章 Python组合数据类型.pptx 清华大学精品Python学习PPT课件-第5章 Python正则表达式.pptx 清华大学精品Python学习PPT课件-第6章 Python函数.pptx 清华大学精品Python学习PPT课件-...

    Python程序设计第四章编程题答案(浙江大学)

    在本资源中,"Python程序设计第四章编程题答案(浙江大学)" 提供了浙江大学中国大学MOOC Python课程第四章的编程练习解答。这是一份非常实用的学习资料,特别是对于那些正在学习Python编程并希望通过实践来提升技能...

    清华大学精品Python学习PPT课件-第11章 Python项目实战:爬虫程序.pptx

    清华大学精品Python学习PPT课件-第4章 Python组合数据类型.pptx 清华大学精品Python学习PPT课件-第5章 Python正则表达式.pptx 清华大学精品Python学习PPT课件-第6章 Python函数.pptx 清华大学精品Python学习PPT课件-...

    Python学习手册_第四版

    如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python...

    python入门学习资料

    此文档是python学习的入门文档,文件格式txt可以修改格式为html,方便阅读。 第 1 章 安装 Python 第 2 章 第一个 Python 程序 第 3 章 内置数据类型 第 4 章 自省的威力 第 5 章 对象和面向对象 第 6 章 异常和文件...

    算法设计与分析(python)第六章.zip

    在本压缩包“算法设计与分析(python)第六章.zip”中,主要涵盖了关于算法设计与分析的相关内容,特别是使用Python编程语言进行实现。这一章节的学习重点在于理解算法的基本概念、设计方法以及性能分析,同时结合...

    Python程序设计第五章编程题答案(浙江大学)

    本资源包含了"Python程序设计"课程第五章的编程题答案,旨在帮助学生理解和掌握Python编程的核心概念与技巧。 在Python编程中,第五章通常会涵盖一些关键主题,例如函数的使用、模块导入、异常处理、文件操作以及...

    疯狂Python讲义第三章课后习题

    《疯狂Python讲义》是一本深受Python初学者和进阶者喜爱的教材,其第三章主要涉及Python的基础语法和常用编程概念。通过本章的课后习题,读者可以巩固和深化对Python语言的理解,提高实际编程能力。下面将详细解析...

    python 零基础学习篇-Python-第四章 选择结构程序设计1-6.mp3

    python 零基础学习篇-Python-第四章 选择结构程序设计1-6.mp3

    Python学习手册(第4版)

    如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。是易于掌握和自学的教程,根据作者Python专家...

    Python学习手册(第4版) 电子版 高清

    如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python...

    Python学习手册(第4版).rar

    如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python...

    Python学习手册 第4版 PDF

    作为一本涵盖Python基础知识的学习手册,第四版不仅包含了Python的语法和基本编程概念,还深入讲解了Python的核心数据结构、面向对象编程、异常处理、模块使用、高级编程技巧等多个方面。每章都配以大量实例代码,...

    Python学习教程(超级详细)中文PDF完整版最新版本

    目录第1章Python编程基础第2章Python初探第3章变量类型和运第4章列表、元组、字典和集合第5章Python字符串常用方法第6章Python 流程控制第7章函数和 lambda表达式第8章Python 类和对象第9章Python异常处理机制第10章...

    《python编程实践》第6章练习题及解答 作者:陈波,刘慧君

    Python 编程实践第 6 章练习题及解答 本资源提供了 Python 编程实践第 6 章的练习题及解答,涵盖了 Python 语言的基本概念和高级应用,包括数据类型、函数、循环、判断、列表、字符串等内容。通过这些练习题和解答...

Global site tag (gtag.js) - Google Analytics