Day3:列表、list循环、多维数组、字典、字典嵌套
1、列表
stus=['yalun','xiaopang']可以叫下标、索引、角标 print(stus)
增加元素,首先定义一个空列表
stus=[]
stus.append('yalun') #在list末尾增加一个元素
stus.append('xiaopang') #在list末尾增加一个元素
stus.insert(1,'xiaomi') #在指定位置增加元素
stus.insert(2,'王银梅') #在指定位置增加元素
stus.insert(20,'周永波') #如果指定的下标不存在,那么就在末尾增加
print('stus的长度是',len(stus))
print(stus)
修改元素
删 1、pop:为空时默认删除最后一个元素、可以传入指定的下标 # 2、remove:删除指定的元素3、del:删除指定元素4.clear:清空
stus[1] = 'hello' #找到要改的那个下标,直接赋值 print(stus)
stus.remove = ('yalun')
2、list循环
name= ['jabk','fat','small','jay'] for i ,j in enumerate(1,name) #eumerate:想同时取到他的下标和值,默认从0开始取值 print('%s ->%s'%s(i,j))
例子:
name= ['注册','登录','退出','购物']
print('请输入对应的编号进行操作')
for i , j in enumerate(name,1):
print('%s->%s'%(i,j))
3、多维数组
# stu = [1,2,3,4,5,6,7,8,9] # stu0 = [1,2,3,4,['小狗','小猫'],['ha']] #二维数组 # stu0[5][0] = '冻酸奶' #改下标的值,多层嵌套的时候一定要一层层去找 #print(stu0) stu1 = [1,2,3,4,['嘿嘿','小米',['西瓜','葡萄']]] #三维#多维数组并不是有几个list就代表几维数组,是往里嵌套的 # stu1[4][2][0] = '冻酸奶' stu1[4][2].insert(1,'fat') #加入数据 print(stu1)
4、切片:list取值的一种方式,他能指定取值范围,但是顾头不顾尾
stu1 = [1,2,3,4,['嘿嘿','小米',['西瓜','葡萄']]] #三维#多维数组并不是有几个list就代表几维数组,是往里嵌套的 print(stu1[1:4])
print(stu1[0:4:2]) #2代表步长,代表跳过了一个元素
print(stu1[0:4:-1]) #2代表步长,代表跳过了一个元素
#下标 索引、切片 同样适用于字符串 字符串也是可以循环的
name = '小明天'
print(len(name))
print(name[1:3])
5、字典:key-value的形式
1、查
stu_info = {"name":"王志华","age":18,"addr":"北京",'name' :'xiaomi'}
print(stu_info['money']) #想要查询直接print加中括号,直接查就行了 #print[]也是查的一种方式,当取值不存在时会报错
print(stu_info['money']) #取值不存在时返回none
print(stu_info['money',500]) #当在字典中get不到money的值,那么就返回默认值500
# # print(stu_info.get('sex',500)) #如果从字典里get不到money的值,就返回默认值500
# # #取key不存在时会怎样
# # #.get取值不存在的时候不会报错,会返回个none.如果前面get不到值,可以指定一个默认的值
2、修改
stu_info['name'] = 'xiaomi' #找到那个值直接修改 print(stu_info)
3、新增
stu_info['sex'] = '男' #字典里没有这个值就会直接新增上
stu_info.setdefault('num',100) #使用setdefault新增一个已经存在的值,他不会改变原来key的值
4、删除
stu_info.pop('name') #删除不存在的也会报错,一般用这个
del stu_info['name']#删除不存在的值会报错
stu_info.clear() #清空这个字典
5、更新
dic1 = {'num':1}
dic2 = {'num':2}
dic1.update(dic2)
6、获取字典里所有的key和value
stu_info = {"name":"王志华","age":18,"addr":"北京"}
print(stu_info.keys())
print(stu_info.values())
直接循环字典也可以获取到字典里的key和value,这种快一点
stu_info = {"name":"王志华","age":18,"addr":"北京"}
for k in stu_info:
print('%s->%s'%(k,stu_info.get(k)))
直接调用items可以直接调用字典里的key和value
for k ,v in stu_info.items():
print('%s--%s'%(k,v))
7、怎么判断字典里的key存在不存在
stu_info = {"name":"王志华","age":18,"addr":"北京"}
print('name' in stu_info) #返回true或者false