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 ...
随机推荐
- Windows内核-7-(IRP)I/O请求包
Windows内核-7-(IRP)I/O请求包 IRP(I/O Request Packet)就是一个进行I/O操作的请求包. IRP是一个结构体,谁分配谁就得释放,通常由执行体里的管理器,获取内核驱 ...
- C#简单实现表达式目录树(Expression)
1.什么是表达式目录树 :简单的说是一种语法树,或者说是一种数据结构(Expression) 2.用Lambda声明表达式目录树: 1 2 3 4 5 Expression<Func<in ...
- [ASP.NET MVC]@Html.AntiForgeryToken() 防止CSRF攻击
MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request ...
- web整合Spring和Hibernate
上一篇是简单整合web和Spring, 这一篇是整合hibernate: 连接池c3p0: spring5.0, hibernate5.0 jars: ------------------------ ...
- mybaits源码分析--日志模块(四)
一.日志模块 首先日志在我们开发过程中占据了一个非常重要的地位,是开发和运维管理之间的桥梁,在Java中的日志框架也非常多,Log4j,Log4j2,Apache Commons Log,java.u ...
- 再过五分钟,你就懂 HTTP 2.0 了!
Hey guys ,各位小伙伴们大家好,这里是程序员 cxuan,欢迎你收看我最新一期的文章. 这篇文章我们来聊一聊 HTTP 2.0,以及 HTTP 2.0 它在 HTTP 1.1 的基础上做了哪些 ...
- Win7/Win10+VS2017+OpenCV3.4.2安装、测试
安装VS2017 在微软官网https://www.microsoft.com,下载Visual Studio 2017安装包 用管理员权限运行vs2017 enterprise安装包,安装过程会持续 ...
- 求证:-1/2 <= {2x} - {x} < 1/2
证:由 x = [x] + {x},知2x = 2[x] + 2{x}. 1.若{x}落在[0,1/2),则2{x} < 1,于是有{2x} = 2{x},此时 {2x} - {x} = {x} ...
- 自定义Listener
前言 为什么要自定义Listener? 通过自定义,可以在程序启动过程中监听特定事件,再回调处理逻辑. 自定义SpringApplicationRunListener 1.创建自定义SpringApp ...
- 性能测试工具JMeter 基础(六)—— 测试元件: 线程组
线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...