字典方法

1.clear方法

clear方法可以清除字典中所有的项,无返回值;

d = {'name': 'Gumby'}
returned_value = d.clear()      # None

2.copy方法

copy方法返回一个具有相同键-值对的新字典(实现的是浅复制)

x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
y = x.copy()
y['username'] = 'mlh'
y['machines'].remove('bar')
# x--{'username': 'admin', 'machines': ['foo', 'baz']}  y--{'username': 'mlh', 'machines': ['foo', 'baz']}

当在副本中替换值时原始字典不受影响,若修改某个值(原地修改,而非替换)则原始字典也会改变;可以使用copy模块的deepcopy函数来实现深复制,复制其包含的所有值;

c = d.copy()          # 浅复制
dc = deepcopy(d)      # 深复制

3.fromkeys方法

fromkeys方法可以使用给定的键建立新的字典,每个键对应默认值None;

{}.fromkeys(['name', 'age'])                  # {'age': None, 'name': None}

还可直接在dict上调用该方法,自己提供默认值(dict是所有字典的类型);

dict.fromkeys(['name', 'age'], '(unkonwn)')   # {'age': '(unkonwn)', 'name': '(unkonwn)'}

4.get方法

get方法用于访问字典项,当访问不存在的项时返回None,还可以自定义默认值替换None;

d.get('name', 'N/A')        # 'N/A'

5.has_key方法

has_key方法用于检查字典中是否含有特定的键,表达式d.has_key(k)相当于表达式k in d

6.items和interitems方法

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')]

interitems方法的作用大致相同,但返回迭代器对象而非列表;

7.keys和interkeys方法

keys方法将字典中的键以列表形式返回,interkeys方法返回针对键的迭代器;

8.pop方法

pop方法用于获取对应于给定键的值,并将该键-值对从字典中移除;

9.popitem方法

popitem方法类似于list.pop,后者会弹出列表中的最后一个元素,popitem弹出随机的项;

d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
d.popitem()      # ('url', 'http://www.python.org')

10.setdefault方法

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

d = {}
d.setdefault('name', 'N/A')      # 返回'N/A',d为{'name': 'N/A'}

11.update方法

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

d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
x = {'title': 'Python Language Website'}
d.update(x)         # {'title': 'Python Language Website', 'url': 'http://www.python.org', 'spam': 0}

提供的字典中的项会被添加到旧的字典中,若有相同的键会进行覆盖;

12.values和intervalues方法

values方法以列表的形式返回字典中的值,intervalues返回值的迭代器;

results matching ""

    No results matching ""