python数据的容器
数据的容器有5种:列表、元组、字符串、字典、集合
列表、元组、字符串是序列,序列有索引、切片、加法和乘法
一、列表[list]
1、列表元素可以是不同的数据类型
[1,2,'world']
2、列表相加其实就是列表合并,列表元素合成一个列表
a=['a',1,'b',3.0]
b=['c','d','e']
print(a+b)
print(a*3)
['a',1,'b',3.0,'c','d','e']
['a',1,'b',3.0,'a',1,'b',3.0,'a',1,'b',3.0]
列表乘法,就是列表种的元素重复几次
3、列表创建:
a=list('abcde')
print(a)
>>>['a','b','c','d','e']
list(range(5))
>>>[0,1,2,3,4]
4、列表最后一个位置的索引为-1
5、列表切片
列表名称[起始索引位置:最后索引位置:步长]
默认步长为1
起始索引位置的值包含在返回结果中,而最后索引位置的值不包含在返回结果中
逆向切片,将步长设为负数,从右向左切片
[-3:-6:-1]
省略起始索引位置,表示从最开始进行切片
[:-2]
将两个索引都省略后,将按原样复制一个列表
[::]
列表的顺序颠倒,则可以使用::-1
[::-1]
6、在指定的索引位置添加数据元素insert()
a=[1,2,3,4]
a.insert(1,'a')
print(a)
>>>[1,'a',2,3,4]
7、在列表尾部加入元素append()
8、在一个列表中添加另一个列表extend()
a=list(range(6))
b=list(range(6,10))
a.extend(b)
print(a)
>>>[0,1,2,3,4,5,6,7,8,9]
9、列表对象的删除
remove()以值的方式对列表进行删除操作,删除的值不做返回
del()以索引位置的方式对列表进行删除操作,删除的值不做返回
pop()以索引位置的方式对列表进行删除操作,删除的值做返回
二、元组(tuple):可以使代码更安全,防止错误赋值导致重要对象的改变
1、元素可以有不同的类型,但元素是不可变的
如果元素中的一个元素是list,那么元素不能改变,但列表中的值可以改变
2、
b=tuple('abcd')
>>>('a','b','c','d')
三、字符串
1、可以看作是字符的序列,字符串内的字符不可以改变,可以执行序列的四种操作
四、字典(dict)哈希映射或者相关数组
1、字典是一种大小可变的键值对集,用在需要高速查找的地方
2、字典中的数据元素是无序的,并不一定会按照初始化的顺序排序,不同键所对应的值可以相同,但是字典中的键必须是唯一的
3、
d=dict([(1,'a'),(2,'b'),(3,'c')])
print(d)
>>>{1:'a',2:'b',3:'c'}
d=dict(x1='a',x2='b',x3='c')
print(d)
>>>{'x1':'a','x2':'b','x3':'c'}
4、zip()函数创建字典,将多个序列中的元素配对
a=[1,2,3]
b=['a','b','c']
c=dict(zip(a,b))
print(c)
>>>{1:'a',2:'b',3:'c'}
5、
dict(zip(list('abcdef'),range(1,7)))
>>>{'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
6、字典的索引是键
通过键索引修改值,如果键不存在就是插入
如果在字典中不存在索引的键,则系统会报错
(a字典中不存在9键就会报错)
a[9]
字典中某值的索引还可以通过get方法,如果字典不包含某个键,可以返回None,或者自己指定的值
print(a.get(1))
print(a.get(9,'-'))
>>>None
>>>-
7、通过in判断是否存在某个键,其语法跟在列表和元组中判断是否存在某个值是相同的
print(5 in a)
print(9 in a)
>>>True
>>>False
8、使用keys()和values()方法获取字典的键或者值,items()返回键值对
a.keys()
a.values()
a.items()
9、字典的删减有三种方法
使用del()函数对单一元素或者整个字典进行删除
使用pop()方法删除单一元素
使用clear()方法清空词典中的所有元素
del a[1]
a.pop(2)
a.clear()
四、集合(set)
集合是一种无序集,它是一组键的集合,不存储值
在集合中,重复的键是不被允许的,集合可以用于去除重复值
集合也可以进行数学集合运算,如并、交、差以及对称差等。
应用:
去重:把一个列表变成集合,就自动去重了
关系测试:测试两组数据之前的交集、差集、并集等关系
集合的创建有两种方式:使用set()函数或者使用大括号{}
shot_ _type_ set = set()
shot_ type_ set ={'Jump Shot', 'Jump Shot', ' Jump Shot', 'Jump Shot', ' Driving Dunk Shot', ' Jump Shot','Layup Shot', 'Jump shot'; 'Jump Shot', ' Running Jump Shot', 'Jump Shot', ' Jump Shot', ' RunningJump Shot', ' Jump Shot' ,'Jump Shot',' Jump Shot' ,'Driving Layup Shot',' Jump Shot',' Jump Shot' ,'Driving Layup Shot'}
print(shot_ type_set)
{'Jump Shot', 'Driving Dunk Shot', 'Layup Shot', 'Driving Layup Shot' ,'Running Jump Shot '}
需要注意的是,创建空集合,必须使用set(),而不是{},因为{}表示创建一 个空的字典
集合可以嵌套tuple和string,不可变的结构,但不能嵌套list、set和dict
python数据的容器相关推荐
- 使用python构建向量空间_使用Docker构建Python数据科学容器
人工智能(AI)和机器学习(ML)最近真的火了,并驱动了从自动驾驶汽车到药物发现等等应用领域的快速发展.AI和ML的前途一片光明. 另一方面,Docker通过引入临时轻量级容器彻底改变了计算世界.通过 ...
- python数据容器专题
Python容器专题 [导读] 容器通常属于序列(如列表或元组)或映射(如字典),但也存在其他形式的容器.依据Python官方的说法,Python语言中标准内建容器包括 dict , list , s ...
- 软件测试 —— Python(三)之数据序列(容器)
其他Python知识参考:Python学习路线 目录 一.容器 二.字符串(str) 1.定义 2.下标 3.切⽚ 4.字符串的查找⽅法 find 5.字符串的替换⽅法 replace 6.字符串的拆 ...
- python入门(六)——python数据容器
系列文章目录 python入门(一)--你好python python入门(二)--python基础语法 python入门(三)--python判断语句 python入门(四)--python循环语句 ...
- 3. Python 数据容器(列表、元组、字符串、集合、字典)
1. 数据容器入门 数据容器:一种可以容纳多份数据的数据类型,容纳的每份数据称为一个元素. 每个元素,可以是任意类型数据,如:字符串.数字.布尔等. 数据容器根据特点的不同,如: 是否支持重复元素 是 ...
- Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)
基于底层存储实现,Docker 提供了三种适用于不同场景的文件系统挂载方式:Bind Mount.Volume 和 Tmpfs Mount. Bind Mount 能够直接将宿主操作系统中的目录和文件 ...
- python数据包pandas_python_pandas学习
numPy pandas的数据结构介绍 简介 Pandas [1] 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目 ...
- python 数据类_python数据类
前言 之前有写过一篇python元类的笔记,元类主要作用就是在要创建的类中使用参数metaclass=YourMetaclass调用自定义的元类,这样就可以为所有调用了这个元类的类添加相同的属性了. ...
- python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?
python是个啥?它一个强大的编程语言.数据分析是个啥?它一目了然,就是将数据进行分析,看看能得出什么结论.那python的数据分析到底是啥?其实就是通过这个语言将数据分析做出来,更加便捷化,更加速 ...
最新文章
- selenium + python自动化测试unittest框架学习(二)
- 2.4.1 死锁的概念
- Python Django 配置URL的方式(url传参方式)
- linux dd命令制作软盘,制作Linux启动软盘的四种方法
- 工具分享 --- 分享一个在线制作ico的网站
- 光模块和光纤收发器的区别是什么?
- 不会演讲的你,一开口就输了!
- C语言中的二进制、八进制和十六进制的表示
- HDU 1867 KMP
- 设计模式实践系列 (3) - 装饰模式 ( Decorator )
- Js中Reflect对象
- linux lsof
- SAP License:SAP实施Roll out项目经验谈(二)
- 网络配置管理大大减轻网络管理员的负担
- Linux I2C调试工具i2c-tools,i2ctransfer支持16位寄存器地址
- 天网防火墙V2.61学习教程
- java中英文切换,Java实现多语言切换
- r7 2700X装Linux,R7 2700X大战i7 8700K:谁才是游戏玩家的菜?
- teamviewer 远程控制linux,Linux远程控制软件-TeamViewer
- 「Odoo 基础教程系列」第七篇——从 Todo 应用开始(6)