列表:
一、列表操作
"""
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,就可以用一个list表示:
stus = [‘xiaohei‘,‘xiaobai‘,‘xiaohuang‘,‘cxdser‘]
索引(下标、角标)从0开始,0 1 2 3 4 5 6...。最后一个元素的下标可以写-1
name = ‘xiaohei,xiaobai,xiaohuang‘ 用字符串表示名字,但是多了不好查找
id = 1
#数组、list、array 都是指列表
"""
创建列表
stus = [‘xiaohei‘,‘xiaobai‘,‘xiaohuang‘,‘xiaobai‘,‘cxdser‘]
增加
stus.append(‘曹操‘)#在list末尾增加一个元素 print(‘append在list末尾增加一个元素:‘,stus) stus.append(‘曹仁‘)#在list末尾增加一个元素 print(‘append在list末尾增加一个元素:‘,stus) stus.insert(3,‘曹洪‘)#在指定位置添加元素 print(‘指定在下标3位置添加元素:‘,stus) stus.insert(1000,‘曹纯‘)#如果你指定的下标不存在,那么就是在末尾添加 print(‘指定不存在的下标位置添加元素:‘,stus)
修改
stus[0]=‘曹休‘ #指定下标位置修改元素 print(‘[X]指定下标位置修改元素:‘,stus)
查看
print(‘查看整个列表:‘,stus) #查看整个列表 print(‘查看指定下标的元素:‘,stus[-1]) #查看指定下标的元素 print(stus.count(‘hhaha‘)) #查看某个元素在这个里面的个数,如果该元素不存在,那么返回0 print(stus.index(‘xiaobai‘)) #找到这个元素的下标,如果有多个,返回第一个,如果找一个不存在的元素,会报错
list操作
stus = [‘xiaohei‘,‘xiaobai‘,‘xiaohuang‘,‘cxdser‘,‘xiaohei‘] stus.pop() #默认删除最后一个元素,如果指定下标,那么删除指定的元素 print(‘pop删除最后一个元素:‘,stus) stus.remove(‘xiaohei‘) #删除list里面的一个元素 print(‘remove删除指定元素:‘,stus) del stus[0] #删除指定下标的元素 print(‘del删除指定元素:‘,stus) stus.clear() #清空整个list print(‘clear清空整个list:‘,stus) stus.reverse() #反转list print(‘reverse反转整个list:‘,stus) nums = [9,31,345,12,457,2352,12143,2321] nums.sort(reverse=True) #排序,默认排序是升序,如果指定了reverse=True就是按照降序拍 print(nums) nums.sort() #排序,默认排序是升序,如果指定了reverse=True就是按照降序拍 print(nums)
多维数组
二维数组 三维数组
two_nums = [123,456,[789,10,11]] #二维数组列表 print(two_nums[2][1]) #查看10 three_nums = [123,456,[789,10,11,[‘hahaha‘,‘1234‘]]] print(three_nums[2][3][0]) #查看haha a = [1,2,3] b = [4,5,6] a.extend(b) #合并两个list,将b合并到a中 print(‘合并后的列表‘,a) print(b)
二、列表循环和切片
列表循环
如果直接for循环一个list的时候,那么每次循环的值都是这个list里面的元素
names = [‘haha‘,‘hehe‘,‘heihei‘] for name in names: print(name)
切片
nums = [1,2,3,4,5,6,7,8,9,10] print(nums[-1:-8:-1])#步长
步长是正数的话从左往右取
步长是负数的话从右往左取
print(‘没有:7‘,nums[:6])
切片同样适用于字符串,字符串也有下标
title=‘今 天 发 苹 果 ‘ print(title[:4]) for i,t in enumerate(nums): #enumerate可以同时循环下标和值 print(i,t)
就是list取值的一种方式
print(nums[2:4]) print(nums[:6])#如果切片前面一个值不写的话,从开头取 print(nums[3:])##如果切片后面的值不写的话,取到末尾 print(nums[:])#如果前面的值和后面的值都不写的话,那么全取过来
切片是顾头不顾尾
三、非空即真
非空即真
非0即真
print(1>2) a=1 b=2 if a==b: print(‘xxx‘)
字典:
一、字典操作
d = { ‘name‘:‘曹操‘, ‘age‘:18, ‘sex‘:‘男‘, ‘addr‘:‘昌平区‘, ‘money‘:10000000 , ‘shengao‘:‘200‘ } d.pop(‘shengao‘)#删除某个key print(‘pop删除指定key:‘,d) d.popitem()#随机删除一个 print(‘popitem随机删除一个:‘,d) del d[‘shengao‘] print(‘指定key进行删除:‘,d) d.clear()#清空字典 print(‘clear清空字典:‘,d) print(‘获取到字典所有的key:‘,d.keys())#获取到字典所有的key print(‘获取到所有的values:‘,d.values())#获取到所有的values d.has_key(‘addr‘) #python2里面字典有这个方法,有没有这个key if ‘addr‘ in d: #判断key是否在这个字典里头 print(‘addr‘) print(‘把字典的k和v转成一个二维数组:‘,d.items())#是把字典的k和v转成一个二维数组 for k,v in d.items():#遍历字典并将k、v值打印出来 print(k,v) res = list(d.items()) #把字典转成列表 print(d.items()) print(res[0]) #打印指定字段 for k in d: #用循环遍历字典,性能好 print(k,d.get(k)) #打印k、V值,返回指定键的值,如果值不在字典中返回default值
类型转换
int()#int类型 str()#转成字符 list()#转成list d_list = str(d) print(d_list)
二、字典嵌套
stus = { ‘ybq‘: { ‘age‘: 18, ‘sex‘: ‘男‘, ‘addr‘: ‘昌平区‘, ‘money‘: 10000000, ‘jinku‘: { ‘建行卡‘: 80000, ‘工商卡‘: 800000, ‘招商卡‘: 8000000 } }, ‘tlx‘: { ‘age‘: 19, ‘sex‘: ‘女‘, ‘addr‘: ‘昌平区‘, ‘money‘: 10000000, ‘huazhuangpin‘: [‘chanle‘,‘haha‘] }, ‘mpp‘: { ‘age‘: 19, ‘sex‘: ‘女‘, ‘addr‘: ‘昌平区‘, ‘money‘: 10000000, "bag": { ‘lv‘: ‘一车‘, ‘鳄鱼‘:10 } }, ‘lcy‘:{ ‘age‘:18, ‘sex‘:‘男‘, ‘addr‘:‘昌平区‘, ‘money‘: 10000000, ‘jinku‘:{‘建行卡‘: 80000} }, } print(‘stus:‘,stus) print(‘ybq:‘,stus[‘ybq‘]) print(‘age:‘,stus[‘ybq‘][‘age‘]) print(‘jinku:‘,stus[‘ybq‘][‘jinku‘].values()) jk = stus[‘ybq‘][‘jinku‘].values() print(‘sum:‘,sum(jk)) sum_money = 0 for money in jk: sum_money = sum_money + money print(‘sum_money:‘,sum_money) print(‘打印haha:‘,stus[‘tlx‘][‘huazhuangpin‘][1]) print(‘打印一车:‘,stus[‘mpp‘][‘bag‘][‘lv‘])