Python基础语法之字典

1 字典基础

  1.1 字典是无序的对象的集合,通过键来存取,字典的键只能是不可变类型。

  1.3 字典的长度可变,异构,任意嵌套。

  1.2 python中不可变数据类型包括:数值类型,字符串和元组。

2 创建字典的四种方法

  2.1如果你可以事先可以拼出整个字典:

1 dic = {'name': 'Bob', 'age': 40}

  2.2 如果你需要动态的一次创建字典的一个字段:

1 dic = {}
2 dic['name'] = 'Bob'
3 dic['age'] = 20

  2.3 如果你想书写简单,而且字典的键是字符串:

1 dic = dict(name='Bob', age=18)
2 print(dic)

  2.4 如果你需要在程序运行时通过序列构建字典:

1 dic = dict([('name', 'Bob'), ('age', 18)])
2 print(dic)

3 字典的基本操作

  3.1 字典的基本操作之增

 1 # 通过动态的赋值来为字典增加键值对
 2 dic = {}
 3 dic['name'] = 'Bob'
 4 dic['age'] = 60
 5 print(dic)  # {'name': 'Bob', 'age': 60}
 6 
 7 # 通过setdefault方法增加键值对
 8 a = dic.setdefault('name', 'alex')  # 当原字典中有'name',则不去修改,否则增加
 9 b = dic.setdefault('age', 22)  # 同上
10 c = dic.setdefault('sex', '')  # 同上
11 print(a, b, c)  # Bob 60 男
12 print(dic)  # {'name': 'Bob', 'age': 60, 'sex': '男'}

  3.2 字典的基本操作之查

1 # 通过键来查看值
2 print(dic['name'])  # Bob
3 print(dic['age'])  # 60
4 print(dic['sex'])  #
5 
6 # 通过方法keys(),values(),items()
7 print(dic.keys())  # dict_keys(['name', 'age', 'sex'])
8 print(dic.values())  # dict_values(['Bob', 60, '男'])
9 print(dic.items())  # dict_items([('name', 'Bob'), ('age', 60), ('sex', '男')])

  3.3 字典的基本操作之改

1 dic = {'name': 'Bob', 'age': 60, 'sex': ''}
2 # 通过赋值方式来修改
3 dic['name'] = 'alex'
4 print(dic)  # {'name': 'alex', 'age': 60, 'sex': '男'}
5 
6 # 通过方法update()来修改
7 dic2 = {'sex': '', 'hobby': 'learn', 'country': 'China'}
8 dic.update(dic2)  # 原来不存在的键值对追加,存在的键修改其值
9 print(dic)  # {'name': 'alex', 'age': 60, 'sex': '女', 'hobby': 'learn', 'country': 'China'}

  3.3 字典的基本操作之删

 1 dic = {'name': 'Bob', 'age': 60, 'sex': ''}
 2 # 通过del删除字典中的元素或整个字典
 3 del dic['name']
 4 print(dic)  # {'age': 60, 'sex': '男'}
 5 del dic
 6 # print(dic)  # NameError: name 'dic' is not defined
 7 
 8 dic = {'name': 'Bob', 'age': 60, 'sex': ''}
 9 # 通过pop()方法
10 name = dic.pop('name')
11 print(name)  # Bob
12 print(dic)  # {'age': 60, 'sex': '男'}

4 字典中其他内置方法

  4.1 fromkeys()

1 dic = dict.fromkeys(['key1', 'key2', 'key3'], 'values')
2 # 类似将字典中的键初始化为一个默认的值
3 print(dic)  # {'key1': 'values', 'key2': 'values', 'key3': 'values'}
4 dic2 = dic.fromkeys(['key1', 'key2', 'key3'], ['values1', 'values2'])
5 print(dic2)  # {'key1': ['values1', 'values2'], 'key2': ['values1', 'values2'], 'key3': ['values1', 'values2']}
6 dic2['key1'][0] = 'values3'  # fromkeys()创建的字典,修改字典中的一个嵌套列表中的值,多有的键值都修改
7 print(dic2)  # {'key1': ['values3', 'values2'], 'key2': ['values3', 'values2'], 'key3': ['values3', 'values2']}

  4.2 get()

1 dic = {'name': 'Bob', 'age': 60, 'sex': ''}
2 print(dic.get('name'))  # Bob
3 print(dic.get('hobby'))  # None  可以判断字典中是否有此键
4 print(dic.get('hobby', 'basketball'))  # basketball

  4.3 copy()

    注:只是浅拷贝,只对顶层的拷贝

1 dic = {'name': 'Bob', 'age': 60, 'sex': '', 'hobby': ['read', 'basketball']}
2 dic2 = dic.copy()  # {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['read', 'basketball']}
3 print(dic2)
4 dic['hobby'][0] = 'write'
5 print(dic2)  # {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['write', 'basketball']}

5 字典的排序

  采用sorted()

1 dic = {'b': 'b', 'a': 'a', 'c': 'c'}
2 print(dic)
3 for key in sorted(dic):
4     print(key, dic[key])

 6 字典的遍历

1 dic = {'name': 'Bob', 'age': 60, 'sex': ''}
2 for key in dic:
3     print(key, dic[key])
4 
5 for item in dic.items():
6     print(item)
7 
8 for i, v in dic.items():
9     print(i, v)
原文地址:https://www.cnblogs.com/swenwen/p/10580875.html