定义一个字典:
字典:外部是花括号 { }
元素:以键值对的形式存在 {键 :值,键 :值,....}
注意:键是唯一的不可重复,值是可以重复的;而且字典里没有下标和切片
#定义一个字典
dict1 = {}
dict1['name'] = 'JJ'
dict1['age'] = 20
dict1['sex'] = '男'
print(dict1)
输出为:
{'name': 'JJ', 'age': 20, 'sex': '男'}
关于字典的那些操作:
1.添加元素
格式:
字典名[key] = value (key必须是字符串)
注意:key是唯一的,若在添加的时候出现同名的key,则后面的key对应value替换原来的 value值, 可利用这个来修改value的值
update用法:
字典名.update(字典名2) 用于合并字典,将字典2接在字典1的后面,并在字典1中
2.删除元素
clear() 清空字典元素,留下空字典
pop(key) 删除key所对应的value;返回值为键所对应的值
popitem 从后往前删除键值对
del 是系统自带的删除方法,会删除整个字典,其地址也被抹除
3.遍历和查询
字典名.keys() 返回所有的键
字典名.values() 返回所有的值
字典名.items() 返回键值对
下为返回字典中所有的键值对:
for k,v in book.items(): #键给 k;值给 v
print(k,v) #键值对分开,以字符串格式输出
get(key) 根据key返回value值;如果不存在则通过设置第二个参数控制返回的内容, 默认为None
#字典的获取值
book = {'书名': '《武动乾坤》', '价格': 80.0, '作者': '天蚕土豆', '出版社': '***出版社'}
#根据key得到value的值
value = book.get('书名1','a') #若没有key值,则返回第二个参数值 a
print(value) #错误键
value = book.get('书名')
print(value) #正确键
输出:
a
《武动乾坤》
字典名[key] 根据key返回value值,不存在会报错
in 操作 只能判断键是否在字典里,不能用来判断值
book = {'书名': '《武动乾坤》', '价格': 80.0, '作者': '天蚕土豆', '出版社': '***出版社'}
for i in book: #直接遍历字典取出的是key
print(i)
输出为键:
书名
价格
作者
出版社
下为不同格式输出字典的值:
book = {'书名': '《武动乾坤》', '价格': 80.0, '作者': '天蚕土豆', '出版社': '***出版社'}
print(book.values()) #输出字典里所有的值
print(list(book.values()))
for v in book.values():
print(v)
输出:
dict_values(['《武动乾坤》', 80.0, '天蚕土豆', '***出版社'])
['《武动乾坤》', 80.0, '天蚕土豆', '***出版社']
《武动乾坤》
80.0
天蚕土豆
***出版社
4.其他特殊操作
字典名.fromkeys() 创建一个新字典,第一个参数为键,第二个为值
#fromkeys 创建一个新字典,第一个参数为键,第二个为值
result = book.fromkeys(['s','j'],4)
print(result)
输出:
{'s': 4, 'j': 4}
字典名.setdefault() 添加键值对,第一个参数为键,第二个参数为值
# setdefault 只能作添加键值对使用
book = {'书名': '《武动乾坤》', '价格': 80.0, '作者': '天蚕土豆', '出版社': '***出版社'}
book.setdefault('出版日期','10.6')
print(book)
输出:
{'书名': '《武动乾坤》', '价格': 80.0, '作者': '天蚕土豆', '出版社': '***出版社', '出版日期': '10.6'}
split的特殊用法:
当一个变量存储两个值时,将其自动转换为列表
将输入的书名和价格空格分开,放在列表输出
book = input('请输入书名,价格:').split(' ')
print(book) #以列表形式输出
当我输入(中间含空格):大主宰 108
会输出:
['大主宰', '1']
输入两个字符以空格分开,输出为字符串形式
name,price = input('请输入书名,价格:').split(' ')
print(name,price) #同时对两个变量赋值,但是均为字符串型
当我输入:大主宰 108
输出:
大主宰 1