python学习笔记(三)-列表&字典
列表:
一、列表操作
"""
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'])
python学习笔记(三)-列表&字典的更多相关文章
- python学习笔记(三)、字典
字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合 ...
- python 学习笔记(三)根据字典中值的大小对字典中的项排序
字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一.利用zip函数将字典数据转化为 ...
- 【python学习笔记】4.字典:当索引不好用时
[python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...
- python学习笔记整理——列表
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...
- Python学习笔记_week2_列表、元组、字典、字符串、文件、i编码
一. 列表.元组 names=["A","B","C","D"] print(names) print(names[0] ...
- Python学习笔记---切片 列表 元祖 字典 集合
列表[1,2,3,2]#[] 元祖(1,2,3,2)#() 字典{1:2,3:2}#{} 集合{1,2,3,2}#{} 1,集合与列表的区别,集合里不能有重复元素 2.字典与集合的区别,都是用花括号表 ...
- python学习笔记6(字典)
映射:键值对的关系,键(key)映射值(value) 字典是Python唯一的映射类型 >>> phonebook = {'} >>> phonebook {'} ...
- python学习笔记07-元组 字典
元组: 元组里面的元素不可修改 创建后只可读 不可写 一个元素的时候 在后面加一个逗号 字典: 无序的 Python 中唯一的映射类型 采用键值对的形式存储数据 key必须是可哈希的 可哈希表示 ...
- Python 学习笔记三
笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...
随机推荐
- 在java程序中使用protobuf
目录 简介 为什么使用protobuf 定义.proto文件 编译协议文件 详解生成的文件 Builders 和 Messages 序列化和反序列化 协议扩展 总结 简介 Protocol Buffe ...
- 题解 english
传送门 好题 肝完这题感觉头巨痛 首先\(n \leqslant 1000\)的部分可以\(n^2\)单调队列,有30pts 然后考场上魔改了下单调栈,让它能顺便维护出以\(1~i-1\)为左端点的区 ...
- Spring-boot注入配置为java静态属性
配置文件 注入静态变量 注意 类上面有:@Component注解 使用注入的静态变量 成功
- FXGL游戏开发-JavaFX游戏框架
FXGL 是一个JavaFX 游戏开发的框架,这个框架有两个版本,其中基于JDK1.8的版本已经不再维护,目前最新的是基于JDK11的版本,也就是Openjfx的版本. FXGL 提供了各种游戏范例: ...
- Go测试--main测试
目录 简介 示例 简介 子测试的一个方便之处在于可以让多个测试共享Setup和Tear-down.但这种程度的共享有时并不满足需求,有时希望在整个测试程序做一些全局的setup和Tear-down,这 ...
- Learning ROS: rqt_console和rqt_logger_level使用
rqt_console:操作.查看log信息 rqt_logger_level:设置log等级 打开node: rosrun rqt_console rqt_console rosrun rqt_lo ...
- MySQL日志系统bin log、redo log和undo log
MySQL日志系统bin log.redo log和undo log 今人不见古时月,今月曾经照古人. 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息,主要包括错误日 ...
- IMO 2021 第一题题解及相关拓展问题分析
IMO 2021 第 1 题: 设整数 n ≥ 100.伊凡把 n, n + 1, ..., 2n 的每个数写在不同的卡片上.然后他将这 n + 1 张卡片打乱顺序并分成两堆.证明:至少有一堆中包含两 ...
- SpringBoot笔记(6)
一.数据访问(SQL) 1.数据源的自动配置-HikariDataSource 1.导入JDBC场景 <dependency> <groupId>org.springframe ...
- idea无法使用中文输入法输入
问题--idea无法使用中文输入 原因:idea本身版本过高,所以需要你强制减低它的jdk版本 解决:使用配置idea环境变量解决 ps:目前适用于任何版本的jdk和idea 步骤: 1.新建一个ID ...