python入门(三)列表、元组、range()、字典
列表(list)
列表简介:列表(list)是处理一组有序项目的数据结构。用方括号[]表示。可以进行添加,删除,替换,搜索操作。是可变的数据类型。列表可以嵌套和支持索引。
name=[12,"哈哈"]#定义一个列表
print(id(name[0]))#id获取对象的内存地址
s="alex"
s="wusir"
s[0]="b"#报错 字符串是不可变的量
列表的增:append、insert、extend
append:在列表末尾添加一个元素
name=[12,"哈哈"]
name.append(True)#在列表的末尾添加一个元素
print(name)
结果为:12 哈哈 True
insert:指定索引进行插入
name=[12,"哈哈"]
name.insert(0,True)#insert(索引,要添加的元素);写上要添加的位置(索引值)和要添加的元素
print(name)
结果为: True 12 哈哈
extend:在列表末尾追加可迭代对象中的元素来扩展列表
name=[12,"哈哈"]
name.extend("1123")#extend()方法中填写可迭代对象( 可迭代对象:字符串、列表、元祖、字典;不可迭代对象:数字和布尔型)
print(name)
结果为:"12" "哈哈" "1" "1" "2" "3"
name.extend([11,22])
print(a)
结果为: "12" "哈哈" "11" "22"
列表的删:del、remove、pop、clear
pop:默认删除最后一个;可以通过指定索引进行删除
name=[11,22]
name.pop()#默认删除最后一个
print(name)
结果为:"11"
name.pop(0)#指定索引进行删除
print(name)
结果为:"22"
remove:通过元素名字进行删除
name=["haha",True]
name.remove("haha")#remove()括号中写要移除的元素
print(name)
结果为: True
del:可以通过索引删除、切片删除、步长删除
通过索引删除
name=[11,22,33,44,55,66]
del name[0]#填写需要删除的索引
print(name)
结果为:"22" "33" "44" "55" "66"
通过切片删除
name=[11,22,33,44,55,66]
del name[0:3]#删除索引0-2的元素
print (name)
结果为:"44" "55" "66"
通过步长删除
name=[11,22,33,44,55,66]
del name[0:3:2]#删除索引0-2的元素,步长为2
print(name)
结果为:"22" "44" "55" "66"
clear:清空列表
name=[11,22,33,44,55,66]
name.clear()
print(name)
结果为[]
列表的改
通过索引改
name=[11,22,33,44,55,66]
name[0]=1
print(name)
结果为1 22 33 44 55 66
通过切片改
name=[11,22,33,44,55,66]
name[0:3]="12345"#通过切片改,改变的值为可迭代对象,进行循环迭代,步长为1 不用一一对应
print(name)
结果为:1 2 3 4 5 44 55 66
通过步长改
name=[11,22,33,44,55,66]
name[0:3:2]="12"#步长不为1的必须用一一对应,多一个也不行,少一个也不行
print(name)
结果为:1 22 2 44 55 66
列表的查
name=[11,22,33,44,55,66]
for x in name:
print(x)
列表的嵌套
name=[1,"alex","春生","小东北","渣弟",["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]
假如要输出 肖锋的值
print(name[5][4][3][0])
不管什么类型进行切片的时候获取到的都是源数据类型
3.5 元组(tuple)
元组(touple)简介:有序、元素不可变、支持索引;元组用来存储一些重要的信息;元组在配置文件中会使用;元组就是不可变的列表
定义方式:
tu=(1,"alex",True,"大黑哥",[1,2,3])
3.6 range()方法
range():范围
print(list(range(0,10)))#前闭后开
range()与列表切片不同的是:range()起始位置 终止位置 步长用逗号隔开;列表切片则用:隔开
print(list(range(0,10,1))) #步长不写得时候默认为1 [0:10:1]
print(list(range(10,-2,-1))) #步长不写得时候默认为1 [10:-2:-1]
print(list(range(10))) #步长不写得时候默认为1 [:10]
错误实例:
while range(0,10):#列表不为空为True 所以是死循环
print(1)
python2和python3的区别
python3 中的range是一个可迭代对象 写得是怎样的打印的时候就是怎样
获取成列表:list(range(0,10)) 顾头不顾尾
python2 中的range返回的是一个列表
3.7 字典(dict)
字典简介:字典是无序的,可变的数据类型;用于存储数据,存储大量数据 字典要比列表快,将数据数据之间关联
定义一个字典:
dic={1:1223,"haha":True,True:False}#字典中逗号分隔的叫做一个元素 1(键) 1223(值)
字典的键:为不可变的数据类型
可哈希的---不可变的数据类型---避免哈希冲突 使用了开放寻址法
不可哈希---可变的数据类型
字典的键:要去唯一----如果有重复将后面的覆盖前面的值
字典的值:可以任意
字典的增、删、改、查
增:setdefault()
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
dic["haha"]=10#暴力添加 如果该键不存在 则为添加;存在则将值进行修改
print(dic)
结果为:{"常鑫":10,"李文虎":80,"张宇":100}
dic["常鑫"]=1#进行修改
print(dic)
结果为:{"常鑫":1,"李文虎":80,"张宇":100}
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
dic.setdefault("haha",11)#如果键不存在则进行添加
dic.setdefault("常鑫":1)#如果键存在则不进行操作
print(dic)
结果为:{"常鑫":10,"李文虎":80,"张宇":100,"haha":1}
删:del、pop()
删
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
del dic["常鑫"]#通过字典的键进行删除
print(dic)#结果为:{"李文虎":80,"张宇":100}
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
dic.pop("常鑫")#通过字典的键进行删除
print(dic)#结果为{李文虎":80,"张宇":100}
改:update()
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
dic["常鑫"]=3#如果该键不存在 则为添加;存在则将值进行修改
print(dic)#结果为{"常鑫":3,"李文虎":80,"张宇":100}
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
dic1={"常鑫":1,"haha":11}
dic.update(dic1)#update括号中的字典级别高于update前面的字典 键无则添加,有则修改
结果为:{"常鑫":1,"李文虎":80,"张宇":100,"haha":1}
查
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
for x in dic:
print(x)#输出每个键值
结果为:
常鑫
李文虎
张宇
获取值 get
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
print(dic.get("张宇"))#获取字典中键为"张宇"的值并输出
结果为:100
print(dic.get("haha"))#获取字典中键为"haha"的值并输出,不存在该键,返回None并输出
print(dic["张宇"])#获取字典中键为"张宇"的值并输出
结果为100
print(dic.get("haha"))#获取字典中键为"haha"的值并输出,不存在该键,报错
其他操作:
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
获取键 keys(
print(dic.keys())#获取该字典所有键并输出;高仿列表支持for循环,不支持索引
结果为:dict_keys(['常鑫', '李文虎', '张宇'])
for x in dic:
print(x,dic[x])
print(x,dic.get(x))
输出该字典的键和值
结果为:
常鑫 10
李文虎 80
张宇 100
获取值 values()
print(dic.values())#获取该字典所有值并输出
结果为:dict_values([10,80,100])
获取键和值
print(dic.items())#输出所有的键和值
结果为:
常鑫 10
李文虎 80
张宇 100
解构
a,b=10,20
print(a,b)#等号后边的值和前面的变量名要一一对应
结果为10 20
a=10,12
print(a)#本质上a是一个元组
a,b="23"
print(a,b)#结果为2 3
a.b={1:a,3:b}
print(a,b)
结果为1 3
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
for i in dic.items():
print(i)
结果为:
('常鑫', 10)
('李文虎', 80)
('张宇', 100)
dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
for x,y in dic.items():
print(x,y)
结果为:
常鑫 10
李文虎 80
张宇 100
字典的嵌套
dic={1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]}}
找到井盖并输出
print(dic[1005]["常鑫"][5])
python入门(三)列表、元组、range()、字典的更多相关文章
- Python 入门基础5 --元组、字典、集合
今日目录: 一.元组 二.字典 三.集合 四.后期添加内容 一.元组 1.定义 t1 = () # 参数为for可以循环的对象(可迭代对象) 思考: 如何定义一个只有一个值的元组? ("li ...
- python学习之列表元组,字典
list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...
- python 序列结构-列表,元组,字典,字符串,集合
列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...
- Python—列表元组和字典
Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- Python学习三|列表、字典、元组、集合的特点以及类的一些定义
此表借鉴于他人 定义 使用方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner', ...
- 人生苦短之我用Python篇(列表list、字典dict、元组tuple、字符串str)
列表 创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_s ...
- 巨蟒python全栈开发-第4天 列表&元组&range
今日内容大纲 1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操 ...
- python笔记(1)--序列(列表 元组 range)
一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...
- Python初学笔记列表&元组&字典
一.从键盘获取 1 print("请输入") 2 username = input("姓名:") 3 age = input("年龄:") ...
随机推荐
- typedef int a[10];怎么解释?
typedef int a[10]; a b[10]; 为什么分配400个字节的空间? int a[10];为什么分配了40个字节的空间? 问题:应该怎么解释typedef的这种行为呢?而如果换成是# ...
- 加深对C#数据类型的认识
值类型: 值类型源于System.Value家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型 所在的内存区域称之为栈(Stack),只要在代码中修改它,就会在内存区域保存这个值. ...
- JDK容器类Map源码解读
java.util.Map接口是JDK1.2开始提供的一个基于键值对的散列表接口,其设计的初衷是为了替换JDK1.0中的java.util.Dictionary抽象类.Dictionary是JDK最初 ...
- WPF 动态添加按钮以及样式字典的引用(Style introduction)
我们想要达到的结果是,绑定多个Checkbox然后我们还可以获取它是否被选中,其实很简单,我们只要找到那几个关键的对象就可以了. 下面是Ui,其中定义了一个WrapPanel来存放CheckBox,还 ...
- 关于STM32F103+ESP8266+阿里云过程之设备状态更新至阿里云(三)
设备与阿里云完成发布订阅的功能,接下来就是将设备状态如温湿度,PM2.5值上报更新至阿里云. 1.查看Topic. 在阿里云平台上 设备->Topic列表中查看.在产品中也可以看到对应的Topi ...
- Linux命令之文件相关
cd 绝对路径相对路径 --转到对应目录 touch-a --更新访问时间 touch -m --更新修改时间(ls -l只能显示修改时间) touch -t [[cc]yy]mmddhhmm[ss] ...
- 虚IP解决程序连只读服务器故障漂移
目前公司有一套核心交易数据库配置了AlWaysON,SQL 2012版本, 1主4从, 其从库(8,14, 8.15) 这2台只读的从数据库服务器, 后台程序和wms等很多程序,都是直接配置IP连接这 ...
- 让 CXK 来教你实现游戏中的帧动画(上)
一款游戏除了基本功能之外,还需要给玩家更多视觉上的刺激,这个时候就需要用特效来装饰.本文就将介绍 Cocos Creator 的动画系统,除了标准的位移.旋转.缩放动画和序列帧动画以外,这套动画系统还 ...
- 1和new Number(1)有什么区别
1和new Number(1)有什么区别 author: @Tiffanysbear 总结,两者的区别就是原始类型和包装对象的区别. 什么是包装对象 对象Number.String.Boolean分别 ...
- Go标准库--net/http学习
Go中对网络的支持提供了标准库,net包提供了可移植的网络I/O接口,包括TCP/IP.UDP.域名解析和Unix域socket. http包提供了HTTP客户端和服务端的实现. 一般我们用http肯 ...