python 字典 字典的增删改查 遍历 有序字典

字典

  1. 字典 dict 是由 键值对组成 {key: value, key: value, key, value}
  2. key 值需要是不可变类型, 可为(字符串, 数字(int, float), 元祖)
  3. value 值可以是任意类型
  4. 在一个字典中, key值是唯一的
  5. 一个键值对是一个元素
my_dict = {'name': "isaac", 'age': 18, 1: 'hello'}
print(my_dict)
print(type(my_dict))

# 控制台输出
{'name': 'isaac', 'age': 18, 1: 'hello'}
<class 'dict'>
  1. 字典不支持下标(所以)
  2. 访问字典 value 值, 通过 key 值
  3. 字典名[key]
print(my_dict['age'])
print(my_dict[1])
# 控制台输出
18
hello
  1. 字典名.get(key)
name = my_dict.get('name')
print(name)

# 控制台输出
isaac
  1. 字典名[key] 和 get(key)
    字典名[key] key值不存在, 程序会报错
    get(key), key 值不存在, 返回的是None
# print(my_dict['aa'])  # 程序报错, key值不存在
print(my_dict.get('aa'))  # key 值不存在, 返回None
print(my_dict.get('aa', 'python'))  #key 值不存在, 返回的是 "python", 但是不会加入到字典中
print(my_dict)
# 控制台输出
None
python
{'name': 'isaac', 'age': 18, 1: 'hello'}

字典 - 修改和添加元素

  1. 字典名[key] = value
    key 存在, 修改数据
    key 不存在, 添加数据
    注意点: 对于 key 值来讲, 1 和 1.0 是相同的(2 和 2.0 也是相同的, 以此类推)
my_dict = {'name': 'isaac', 'age': 18, 1: 'hello'}
print(my_dict)
# key 值不存在,添加数据
my_dict['pi'] = 3.14
# key 值存在, 修改数据
my_dict['age'] = 19
#注意点: 对于 key 值来讲, 1 和 1.0 是相同的(2 和 2.0 也是相同的, 以此类推)
my_dict[1.0] = 'python'
# 控制台输出
{'name': 'isaac', 'age': 18, 1: 'hello'}
{'name': 'isaac', 'age': 18, 1: 'hello', 'pi': 3.14}
{'name': 'isaac', 'age': 19, 1: 'hello', 'pi': 3.14}
{'name': 'isaac', 'age': 19, 1: 'python', 'pi': 3.14, 1: 'python'}
  1. 字典名.update(新字典)
my_dict = {'name': 'isaac', 'age': 18}
my_dict.update({'age': 20, 1: 'hello'})
print(my_dict)

# 控制台输出
{'name': 'isaac', 'age': 20, 'pi': 3.14, 1: 'hello'}

字典 - 删除元素

  1. del 字典名[key] 删除字典中的键值对
    不能 del 字典名[value] 没有定义
my_dict = {'name': 'isaac', 'age': 18, 'pi': 3.14, 1: '111'}
del my_dict['pi']
print(my_dict)
# 不能 del 字典名[value]  没有定义
# del my_dict['18']
# print(my_dict)

# 控制台输出
{'name': 'isaac', 'age': 18, 1: '111'}
# 注意啦  del 不能直接删除字典
my_dict = {'name': 'isaac', 'age': 18, 'pi': 3.14, 1: '111'}
del my_dict
print(my_dict)
# 程序报错
  1. 字典名.pop(key)
my_dict.pop(1)
print(my_dict)

# 控制台输出
{'name': 'isaac', 'age': 18}
  1. 字典名.clear() 清空字典,将字典中的多有数据清空
my_dicr.clear()
print(my_dict)

# 控制台输出
{}

字典 - 遍历操作

  1. 字典名.keys() 可以遍历字典中所有的 key 值
    1.1 可以使用 list 将这个内容转换成列表类型
    1.2 是可迭代对象, 可以直接使用 for 循环遍历
  2. 字典名.values 获取所有的 value 值
    2.1 利用list 将内容转换成列表类型
    2.2 是可迭代对象, 可以直接使用 for 循环遍历
  3. 字典名.items() 获取所有的键值对
    3.1 可以使用 list 将这个内容转换为列表类型
    3.2 是可迭代对象, 可以直接使用 for 循环遍历
  4. 拆包
my_dict = {'name': 'isaac', 'age': 18, 'pi': 3.14, 1: '111'}
my_keys1 = my_dict.keys()
# 输出my_keys 的值和类型
print(my_keys1)
print(type(my_keys1))

# 利用list 将内容转换成列表类型
my_list = list(my_keys1)
print(my_keys1, type(my_keys1))
print(my_list, type(my_list))

# 控制台输出
dict_keys(['name', 'age', 'pi', 1])
<class 'dict_keys'>
dict_keys(['name', 'age', 'pi', 1]) <class 'dict_keys'>
['name', 'age', 'pi', 1] <class 'list'>

1.2.直接 for 遍历

for key in my_keys1:
	# key 就是字典中的 key 值
	# 输出 key的值, 和 key 对应的 value 值
	print(key, my_dict[key])

# 控制台输出
name isaac
age 18
pi 3.14
1 111
  1. 字典名.values 获取所有的 value 值
my_values = my_dict.values()
print(my_values, type(my_values))

# 控制台输出
dict_values(['isaac', 18, 3.14, '111']) <class 'dict_values'>
  1. 1 利用list 将内容转换成列表类型
my_list1 = list(my_values)
print(my_values, type(my_values))
print(my_list1, type(my_list1))

# 控制台输出
dict_values(['isaac', 18, 3.14, '111']) <class 'dict_values'>
['isaac', 18, 3.14, '111'] <class 'list'>

2.2直接使用 for 遍历

for value in my_values:
	# 注意 字典中没有任何一种方法, 根据 value 找 key
	print(value)

# 控制台输出
isaac
18
3.14
111
  1. 字典名.items() 获取所有的键值对
my_dict = {'name': 'isaac', 'age': 18, 'pi': 3.14, 1: '111'}
my_items = my_dict.items()
print(my_items)
print(type(my_items))


# 控制台输出
dict_items([('name', 'isaac'), ('age', 18), ('pi', 3.14), (1, '111')])
<class 'dict_items'>

3.1 可以使用 list 将这个内容转换成列表类型

my_list = list(my_items)
print(my_items,type(my_items))
print(my_list,type(my_list))

# 控制台输出
dict_items([('name', 'isaac'), ('age', 18), ('pi', 3.14), (1, '111')]) <class 'dict_items'>
[('name', 'isaac'), ('age', 18), ('pi', 3.14), (1, '111')] <class 'list'>

3.2 直接 for 遍历

for item in my_dict.items:
	# item 类型是元组, (字典的 key, key 对应的 value 值)
	print(item)
	print(item[0])
	print(item[1])

# 控制台输出
('name', 'isaac')
name
isaac
('age', 18)
age
18
('pi', 3.14)
pi
3.14
(1, '111')
1
111
  1. 拆包
for key, value in my_dict.items():
	# key 是字典中的 key 值, value 就是字典中的 value 值
	print(key, value)

# 控制台输出
name isaac
age 18
pi 3.14
1 111

直接使用 for 循环遍历字典, 遍历的是 key 值

for i in my_dict:
	print(i)

# 控制台输出
name
age
pi
1

字典 - 有序字典

  1. 有序字典: 字典中数据的存储按照数据的添加顺序排列
  2. 打印字典的时候, key 值顺序和定义的时候是一样的
  3. python 3.6 之前的字典都是无序的
# 创建有序字典
from collections import OrderedDict
my_dict = OrderedDict()
# 向字典中添加数据
my_dict['one'] = 1
my_dict['two'] = 2
my_dict['three'] = 3
my_dict['four'] = 4
print(my_dict)

# 控制台输出
OrderedDict([('one', 1), ('two', 2), ('three', 3), ('four', 4)])
发布了56 篇原创文章 · 获赞 17 · 访问量 2168

猜你喜欢

转载自blog.csdn.net/LanlanDeming/article/details/103357959