Python学习-Day4-字典、控制语句(一)

字典

字典是“键值对”的无序可变序列。

字典的创建

  1. {}、dict()来创建字典对象
>>> a = {"name":"Man"}
>>> a
{'name': 'Man'}
  1. zip()创建字典对象
>>> k = ["a","b","c"]
>>> v = [100,200,300]
>>> d = dict(zip(v,k))
>>> d
{100: 'a', 200: 'b', 300: 'c'}
  1. fromkeys创建值为空的字典
>>> a = dict.fromkeys(['name','age','job'])
>>> a
{'name': None, 'age': None, 'job': None}

字典元素的访问

  1. 通过键获得值。若不存在,则抛出异常。
>>> a = {"name":"Man","age":10,"job":"student"}
>>> a["name"]
'Man'
  1. get()方法获得值。推荐使用。优点:键不存在,返回None。
>>> a = {"name":"Man","age":10,"job":"student"}
>>> a.get("name")
'Man'
>>> a.get("sdfs")
>>> print(a.get("sdfs"))
None
>>> a.get("sdfs","不存在")
'不存在'
  1. 列出所有键值对
>>> a.items()
dict_items([('name', 'Man'), ('age', 10), ('job', 'student')])
  1. 列出所有的键,列出所有的值
>>> a.keys()
dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['Man', 10, 'student'])
  1. len()键值对的个数
>>> len(a)
3
  1. 检测一个键是否在字典中
>>> "name" in a
True

字典元素添加、修改、删除

  1. 给字典新增键值对,如果键已存在,则覆盖旧的键值对,如果键不存在,则新增键值对。
>>> a = {"name":"Man","age":10,"job":"student"}
>>> a["age"]="12"
>>> a
{'name': 'Man', 'age': '12', 'job': 'student'}
  1. update()将薪资点钟所有键值对全部添加到九字典对象上。如果key有重复,则直接覆盖。
>>> a = {"name":"Man","age":10,"job":"student"}
>>> b = {"money":100,"name":"Man"}
>>> a.update(b)
>>> a
{'name': 'Man', 'age': 10, 'job': 'student', 'money': 100}
  1. 删除可以使用del()方法;或者clear()删除所有键值对;pop()删除指定键值对,并返回对应的值对象。
>>> a
{'name': 'Man', 'job': 'student', 'money': 100}
>>> b = a.pop("name")
>>> b
'Man'
>>> a
{'job': 'student', 'money': 100}
>>> a.clear()
>>> a
{}
  1. popitem():随机删除和返回该键值对。若想一个一个移除并处理项,则有效。
>>> a = {"name":"Man","age":10,"job":"student"}
>>> a.popitem()
('job', 'student')
>>> a
{'name': 'Man', 'age': 10}
>>> a.popitem()
('age', 10)
>>> a
{'name': 'Man'}

序列解包

序列解包可以用于元组、列表、字典。方便对多个变量赋值。
序列解包用于字典时,默认是对“键”进行操作。

>>> x,y,z = 20,30,10
>>> x
20
>>> (a,b,c)=(10,20,30)
>>> a
10
>>> a = {"name":"Man","age":10,"job":"student"}
>>> b,c,d = a
>>> b
'name'
>>> e,f,g = a.values()
>>> e
'Man'
>>> f
10

表格数据使用字典和列表存储,并实现访问

在这里插入图片描述

r1 = {"name":"高小一","age":18,"salary":30000,"city":"北京"}
r2 = {"name":"高小二","age":19,"salary":20000,"city":"上海"}
r3 = {"name":"高小五","age":20,"salary":10000,"city":"深圳"}
tb = [r1,r2,r3]
print(tb[1].get("salary"))
for i in range(len(tb)):
    print(tb[i].get("salary"))

20000
30000
20000
10000

字典核心底层原理

字典对象的核心是散列表。

将一个键值对放进字典的底层过程

在这里插入图片描述
在这里插入图片描述

用法总结

在这里插入图片描述

集合

集合是无序可变,元素不能重复。集合的所有元素都是字典中的键对象,因此是不能重复且唯一的。

集合创建和删除

  1. 使用()创建集合对象,并使用add()方法添加元素
>>> a = {3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
  1. 使用set()将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则保留一个。
>>> a = {3,5,7,3}
>>> b = set(a)
>>> b
{3, 5, 7}
  1. remove()删除指定元素;clear清空整个集合。
>>> a = {3,5,7,3}
>>> a.remove(3)
>>> a
{5, 7}

集合相关操作

Python对集合提供了并集、交集、差集等运算。
并集 a|b
交集 a&b
差集 a-b a.difference(b)
并集 a.union(b)
交集 a.intersection(b)

控制语句

选择结构

通过判断条件是否成立,来决定执行哪个分支。

单分支选择结构

if 条件表达式:
语句/语句块

a = 3
if a<10:
    print(a)
    
3
条件表达式详解

在这里插入图片描述
条件表达式中,不能有赋值操作符“=”。

双分支选择结构

if 条件表达式:
语句1/语句块1
else:
语句2/语句块2

s = input("输入一个数字:")
if int(s)<10:
    print("s是小于10的数字")
else:
    print("s是大于等于10的数字")

输入一个数字:3
s是小于10的数字
三元条件运算符

条件为真时的值 if (条件表达式) else 条件为假时的值

print("s是小于10的数字" if int(s)<10 else "s是大于等于10的数字")

多分支选择结构

if 条件表达式 1:
语句1/语句块1
elif 条件表达式 2:
语句2/语句块2
.
.
elif 条件表达式 n:
语句n/语句块n
else:
语句n+1/语句块n+1

score = int(input("请输入分数:"))
grade = ""
if score<60:
    grade = "不及格"
elif score<80:
    grade = "及格"
elif score<90:
    grade = "良好"
else:
    grade = "优秀"

print("分数是{0},等级是{1}".format(score,grade))

请输入分数:70
分数是70,等级是及格

选择结构嵌套

if 表达式 1:
语句块1
if 表达式 2:
语句块2
else:
语句块3
else:
if 表达式4:
语句块4

score = int(input("请输入分数:"))
if score>100 or score<0:
    score = int(input("输入错误"))
else:
    if score>=90:
        grade = "A"
    elif score>=80:
        grade = "B"
    elif score>=70:
        grade = "C"
    elif score>=60:
        grade = "D"
    else:
        grade = "E"
print("分数是{0},等级是{1}".format(score,grade))

请输入分数:70
分数是70,等级是C

循环结构

用来重复执行一条或多条语句。

while循环

while 条件表达式:
循环体语句

num = 0
while num<=10:
    print(num,end="\t")
    num +=1

0	1	2	3	4	5	6	7	8	9	10	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值