文章目录
一、字典的定义
Python 字典是另一种 可变容器模型,且 可存储任意类型对象。
- 字典中的每个元素就是一个
键值对键(key) : 值(value)
,由键和对应值成对组成,键和值的映射
关系被称为一个键值对。每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中{}
。 键(key)
必须使用不可变类型
。在同一个字典中,键(key)必须是唯一的
。- 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过
键
来存取的,而不是通过偏移
存取。
1、创建字典
s = {}
d = dict()
用 函数 的方式定义字典
d = dict(a=1,b=2)
花括号定义字典
s = {
'linux':[100,90,80]
'python':[89,90,100]
}
2、 字典的嵌套
二、字典的特性
- 字典不支持切片
1、访问字典里的值
>>> dict = {'Name': 'Ran', 'Age': 21, 'Class': 'First'}
>>> print ( dict['Name'])
Ran
>>>
2、成员操作符(in)
3、for循环遍历
- 字典的遍历主要是针对
key值
来说的,因为key的值是唯一的。
三、对字典中元素的操作
1、对字典中元素的查看
-
方括号
查看某key对应的values值。
-
查看字典中所有的key值
字典名.keys()
>>> dict = {'Name': 'Ran', 'Age': 21, 'Class': 'First'}
>>> print(dict.keys())
dict_keys(['Name', 'Age', 'Class'])
>>>
- 查看字典中所有的value值
dict.values()
>>> dict = {'Name': 'Ran', 'Age': 21, 'Class': 'First'}
>>> print(dict.values())
dict_values(['Ran', 21, 'First'])
- 查看字典中的key-value
dict.items()
>>> dict = {'Name': 'Ran', 'Age': 21, 'Class': 'First'}
>>> print(dict.items())
dict_items([('Name', 'Ran'), ('Age', 21), ('Class', 'First')])
>>>
get()函数
访问某键的值
当要访问的键值在字典中不存在时,get方法会返回一个none,而不是KeyError错误。
当要访问的键值在字典中不存在时,我们也可以指定一个默认值。
2、字典中元素的增加
- Python中的字典是
可变数据类型
。
2.1 增加元素
(1)增加一个元素,如果key值存在,则更新对应的value值,如果key值不存在,则添加对应的值。
(2)增加多个元数:service.update()
3、字典中元素的修改
service.setdefault(key,values)
如果key值存在,不做修改,如果key值不存在,则添加对应的值
4、字典中元素的删除
4.1 pop()删除指定key对应的value值
pop()
删除指定key对应的value值,且会返回对应的值
4.2 popitem()删除最后一个key-value
popitem()
删除最后一个key-value,且会返回对应的值
4.3 clear()清空字典内容
- 一次性删除字典中的所有元素。字典会变为空字典。
4.4 del删除字典本身
- 当执行这个方法时,会将字典从内存中彻底删掉,并且不再存在。
四、练习
1、数字重复统计
import random
l = []
dict = {}
for i in range(0,1000):
l.append(random.randint(20,100))
l.sort()
print(l)
for num in l:
if num in dict:
dict[num] += 1
else:
dict[num] = 1
print(dict.items())
2、重复的单词统计
dict = {}
l = (input('请输入句子:')).split(' ')
for word in l:
if word in dict:
dict[word] += 1
else:
dict[word] = 1
print(dict)
3、100个银行卡号
card_nums = []
card_dict = {}
print('\t卡号\t\t\t密码')
for i in range(1,101):
card_nums.append('6102009%03d' % i)
for cardNums in card_nums:
card_dict[cardNums] = 'redhat'
print(f'{card_nums[i-1]}\t\tredhat')
4、重要,理解字典
输出为:4