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 ...
随机推荐
- SpringBoot Spring Security 核心组件 认证流程 用户权限信息获取详细讲解
前言 Spring Security 是一个安全框架, 可以简单地认为 Spring Security 是放在用户和 Spring 应用之间的一个安全屏障, 每一个 web 请求都先要经过 Sprin ...
- 题解 b
传送门 考场上只会暴力 \(n^4\) DP,部分分还写炸了 但其实这个DP可以前缀和优化到 \(n^3\) ,我觉得没有这档部分分就没写 但其实是有这一档的,我没有看出来-- 正解想不到 如果我们已 ...
- window 右键菜单中添加在vs code 打开
原文链接: window 右键菜单中添加在vs code 打开 window 右键菜单中添加在vs code 打开 吃码小妖:以前安装VS code可以的,后面不知道为什么不能右键在VS code中打 ...
- SpringBoot枚举传参
创建一个接口所有枚举继承 package com.gecko.charging.common; public interface BaseEnum { Integer getCode(); } 具体的 ...
- C# 获得文件的执行路径的方法
var path = System.Reflection.Assembly.GetEntryAssembly().Location;
- 梦琪小生 【转】【WPF】WPF MVVM 简单实例
1 新建WPF 应用程序WPFMVVMExample 程序结构如下图所示. 2 Model实现 在Model文件夹下新建业务类StudentModel(类文件StudentModel.cs),类的详细 ...
- 【OpenLayers】入门教程地址
[OpenLayers]入门教程地址: 点击进入 http://anzhihun.coding.me/ol3-primer/index.html 简书地址 : http://www.jians ...
- vscode Markdown Preview Enhanced 安装配置
打开VSCode 打开Externsion,可通过Ctrl+Shift+X 选中 Markdown Preview Enhanced并install即可 配置Preview风格: Magage -&g ...
- 理解ASP.NET Core - [02] Middleware
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 中间件 先借用微软官方文档的一张图: 可以看到,中间件实际上是一种配置在HTTP请求管道中,用 ...
- 【图像处理】使用SDL预览webp图片
写在前面的话 WebP是Google开发的一种图像格式,支持图像数据的有损和无损压缩.保留动画和alpha透明通道数据. 可以创建和JPEG.PNG和GIF图像格式在质量相同或质量更高,但是数据更小的 ...