和我一起成为数据分析师--第四期 讲讲字典和循环

Quinta ·
更新时间:2024-09-21
· 861 次阅读

上期讲到插入
现在讲讲删除num.pop(位置),空白的话是默认删去最后一个

替换直接用等号赋值,num[0]=1;num[0]=2;num,最后num输出2
注意元组不能修改,比如a=(1,2),再使a=(3,4),此时是会报错的

但元组的索引还是[],a=[1,2],a[0]=1是ok的
索引info[1][0] 举例info=[[‘1’,‘2’,‘3’],[‘4’,‘5’,‘6’]] 输出第二行第一列,输出‘4’,这时4是字符串

快速生成几列 row=[0]3=[0,0,0] row4=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]] 4行3列

第3个比较重要的数据结构字典 {} ,
键值对 ,‘key’: ‘value’

举例a={‘name’:‘qinlu’,‘sex’:‘female’,‘age’=‘18’}
一般前面会加’id’:1

索引还是用a[‘id’]=1,a[‘name’] =qiulu,但比如索引a[1],这时候时会报错的,因为字典本身没有什么顺序的概念。
讲讲区别只有字典可以直接索引字符串,前面元组和列表不能索引字符串,只能索引位置。

讲讲字典和列表的区别,字典无论多少,他的查找速度是相同的,性能占比比较小,因为他无序存放,但他占的空间大。
而列表占得空间小,但由于有序存放,他的后期效率会变慢,性能占比大,查找速度会逐渐变慢。
字典允许修改,直接给key重新赋值,a[‘id’]=2。

:a[键]=值,直接在后面加上键值对的赋值,
比如a={‘a’:‘b’,‘c’:‘1’},a[‘5’]=‘d’,a={‘a’:‘b’,‘c’:‘1’,‘5’:d"} **删 **a.pop(‘键’),直接把键删了,对应的值也会删了
去重:set(),将字典化为集合,列表也化为集合,但是这个过程会把重复的值过滤了,有点类似group by,得到的结果是{}
再加上个list(),直接化为[]
在这里插入图片描述
讲讲set()化后,无法进行加减乘除,但可以取交集并集等等,比如set(a)-set(b),是取差集,在a排除b的值
列表化后就是和原来的列表一样

讲个小例子a=[1,2,3] [1,2]<a 反馈是TRUE,表示[1,2]是a的子集

3、提取的是字典中的 键 、值、整个字典
a={‘name’:‘1’,‘b’:‘2’}
a.keys()=dict_keys([‘name’,‘b’])再加一个list(),直接列表化
list(a.value())=[‘1’,‘2’]
list(a.items())=[(‘name’,‘1’),(‘b’,‘2’)] []里面是元组的形式

4、讲讲取字典的数 a.get()
a.get(‘键’,‘none’),表示取到就是keys对应的值,没取到返回none

5、讲讲字典中的更新值a.setdefault()
比如a.setdefault(键,值)
如果在a中查到相应的键,就会替换更新,没查到相应的键,就会自动在后面加上新的键值对

讲讲控制流
a=10
if a>10:
print(‘more than10’)
if a=10:
print…
else:
print(’’)

讲讲elif 和不加elif 区别
a = True
b=True
if a:
print(“代码块1”)
if b:
print(“代码块2”)
代码块1和代码块2都会被输出,而再想一下如果是使用elif:

a = True
b=True
if a:
print(“代码块1”)
elif b:
print(“代码块2”)
只会输出代码块1,而不会输出代码块2了

elif翻译过来大概是 ”否则的话如果…‘’

就是说一个是同时并列判断,另一个有点互斥判断,elif前如果 碰到true的逻辑,就会跳出判断,而if碰到true,还是会往下继续判断下一个if是不是满足条件。

最后再来讲讲循环语句(while,for)

1、while是一直循环+条件判断,直到逻辑判断为false,同时记得要加逻辑判断条件,不然会死循环。
break 直接断开,但是要注意缩进

2、for i in range():,for 比较不容易死循环
print(i)

range(3,5),左闭右开,不含5

a=0
for i in range(1,11):
a=a+i #注意缩进,不然执行不了
print(a)

列表中的循环
a =[‘a’,‘b’,‘c’]
for i in a: #记得加:哦,帅哥
print(i)
a b c

字典中的循环
dict={‘a’:1,‘b’:3,‘c’:5}
for k in dict.keys():
print (k)
a b c

同时for 支持多循环
for v,m in dist.items()
print(k)
print(m)

循环进阶
1、输出1-100的数字
list=[]
for i in range(1,101):
list.append(i) #记得缩进!!!!!!!!!!
print(list)

2、取字典中的值进行平方
dict={‘a’:1,‘b’:2,‘c’:3}
[v**2 for v in dict.values()] #记得加上【】
[1,4,9]

3、输出1-10偶数
[i for i in range(1,11)if i%2==0]
逻辑放后面,加[]

今天先到这,下期讲函数


作者:Mr_charm



字典 数据分析师 分析师 数据 循环 数据分析

需要 登录 后方可回复, 如果你还没有账号请 注册新账号