一、三目运算符
if - else
语法:
表达式2 if 表达式1 else 表达式3
判断表达式1是否为True,如果为True整个运算结果就是表达式2的值 ,否则整个运算结果是表达式3的值。
案例:
age = 18
result = '未成年' if age < 18 else '成年'
print(result)
二、认识字典
字典和其他序列有着很多共同点
举例:
列表:
stu1 = ['小明', 28, '男', 170, 63, 80, 89, 99]
print(stu1[0], stu1[-1])
使用字典:
stu2 = {'name': '小明', 'age': 28, 'gender': '男', '身高': 170, '体重': 63, '语文': 80, '英语': 89, '数学': 99}
print(stu2['name'], stu2['数学'])
列表可以保存多个意义相同的数据,而字典可以同时保存的多个意义不同的数据。
三、什么是字典
- 字典是容器型数据类型,将{}作为容器的标志,里面多个键值对用逗号隔开:{键1:值1, 键2:值2, 键3:值3,…}
- 字典是可变的(支持增删改);字典是无序(不支持下标操作)
- 元素的要求:字典的元素是键值对;键的要求:a.键必须是不可变类型的数据(一般使用字符串) b.键是唯一的;值没有要求
空字典:dict1 = {}
字典的类型:dict
字典是无序的;键的值不可变且键是唯一的。
四、字典的查
(一)查单个字典
1)字典[键]:获取字典中指定键对应的值, 如果键不存在会报错
2)字典.get(键):获取字典中指定键对应的值;如果键不存在不会报错,并且返回None
3)字典.get(键, 默认值):获取字典中指定键对应的值;如果键不存在不会报错,并且返回默认值
案例:查字典中狗的名字和属性
dog = {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
法一:
print(dog['name'], dog['gender'])
法二:
print(dog.get('name'), dog.get('gender'))
(二)遍历字典
语法:
方法1:
for 键 in 字典:
循环体(变量获取的到是键)
方法2:
for 键,值 in 字典.items():
循环体
dog = {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
方法一:
for x in dog:
print( x, dog[x])
方法二:
for key, value in dog.items():
print(key, value)
五、增删改:
(一)改 (修改某个键对应的值)
语法:
字典[键] = 新值 - 将字典中指定键对应的值修改成指定的新值
dog = {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
dog['name'] = '财财'
print(dog) # {'name': '财财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
(二)增(添加键值对)
语法:
1)字典[键] = 值 - 如果键不存在,就在字典中添加键值对; 如果键存在会修改键值对的值
2)字典.setdefault(键, 值) - 在字典中添加指定的键值对;如果键存在会保留原来的值(不会修改)
dog = {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗'}
dog['color'] = '黄色'
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗', 'color': '黄色'}
dog.setdefault('weight', 15)
print(dog) # {'name': '旺财', 'age': 3, 'breed': '土狗', 'gender': '母狗', 'color': '黄色', 'weight': 15}
setdefault()可以保留原来的字典中的值,修改原来不存在的值
案例:
goods_list = [
{'name': '泡面', 'price': 4, 'discount': 0.9},
{'name': '火腿肠', 'price': 1.5},
{'name': '矿泉水', 'price': 2, 'discount': 0.8},
{'name': '面包', 'price': 5.5},
{'name': '酸奶', 'price': 7.5}
]
# 给没有折扣商品添加折扣值为1
for goods in goods_list:
goods.setdefault('discount', 1)
print(goods_list)
(三)删(删除键值对)
语法:
- del 字典[键] - 删除字典中指定键对应的键值对
- 字典.pop(键) - 取出字典中指定键对应的值
dog = {'name': '旺财', 'age': 10, 'breed': '土狗', 'gender': '母狗', 'color': '黄色', 'weight': 15}
print(dog) # {'name': '旺财', 'age': 10, 'breed': '土狗', 'gender': '母狗', 'color': '黄色', 'weight': 15}
del dog['gender']
print(dog) # {'name': '旺财', 'age': 10, 'breed': '土狗', 'color': '黄色', 'weight': 15}
# 这里的pop方法是把值拿出来,原来的值还能被打印出来
color1 = dog.pop('color')
print(dog) # {'name': '旺财', 'age': 10, 'breed': '土狗', 'weight': 15}
print(color1)