python学习笔记(三)-列表&字典

it2026-05-16  16

列表:

一、列表操作"""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'])

 

转载于:https://www.cnblogs.com/lincy/p/8191143.html

最新回复(0)