数据的容器有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数据的容器相关推荐

  1. 使用python构建向量空间_使用Docker构建Python数据科学容器

    人工智能(AI)和机器学习(ML)最近真的火了,并驱动了从自动驾驶汽车到药物发现等等应用领域的快速发展.AI和ML的前途一片光明. 另一方面,Docker通过引入临时轻量级容器彻底改变了计算世界.通过 ...

  2. python数据容器专题

    Python容器专题 [导读] 容器通常属于序列(如列表或元组)或映射(如字典),但也存在其他形式的容器.依据Python官方的说法,Python语言中标准内建容器包括 dict , list , s ...

  3. 软件测试 —— Python(三)之数据序列(容器)

    其他Python知识参考:Python学习路线 目录 一.容器 二.字符串(str) 1.定义 2.下标 3.切⽚ 4.字符串的查找⽅法 find 5.字符串的替换⽅法 replace 6.字符串的拆 ...

  4. python入门(六)——python数据容器

    系列文章目录 python入门(一)--你好python python入门(二)--python基础语法 python入门(三)--python判断语句 python入门(四)--python循环语句 ...

  5. 3. Python 数据容器(列表、元组、字符串、集合、字典)

    1. 数据容器入门 数据容器:一种可以容纳多份数据的数据类型,容纳的每份数据称为一个元素. 每个元素,可以是任意类型数据,如:字符串.数字.布尔等. 数据容器根据特点的不同,如: 是否支持重复元素 是 ...

  6. Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)

    基于底层存储实现,Docker 提供了三种适用于不同场景的文件系统挂载方式:Bind Mount.Volume 和 Tmpfs Mount. Bind Mount 能够直接将宿主操作系统中的目录和文件 ...

  7. python数据包pandas_python_pandas学习

    numPy pandas的数据结构介绍 简介 Pandas [1] 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目 ...

  8. python 数据类_python数据类

    前言 之前有写过一篇python元类的笔记,元类主要作用就是在要创建的类中使用参数metaclass=YourMetaclass调用自定义的元类,这样就可以为所有调用了这个元类的类添加相同的属性了. ...

  9. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?

    python是个啥?它一个强大的编程语言.数据分析是个啥?它一目了然,就是将数据进行分析,看看能得出什么结论.那python的数据分析到底是啥?其实就是通过这个语言将数据分析做出来,更加便捷化,更加速 ...

最新文章

  1. selenium + python自动化测试unittest框架学习(二)
  2. 2.4.1 死锁的概念
  3. Python Django 配置URL的方式(url传参方式)
  4. linux dd命令制作软盘,制作Linux启动软盘的四种方法
  5. 工具分享 --- 分享一个在线制作ico的网站
  6. 光模块和光纤收发器的区别是什么?
  7. 不会演讲的你,一开口就输了!
  8. C语言中的二进制、八进制和十六进制的表示
  9. HDU 1867 KMP
  10. 设计模式实践系列 (3) - 装饰模式 ( Decorator )
  11. Js中Reflect对象
  12. linux lsof
  13. SAP License:SAP实施Roll out项目经验谈(二)
  14. 网络配置管理大大减轻网络管理员的负担
  15. Linux I2C调试工具i2c-tools,i2ctransfer支持16位寄存器地址
  16. 天网防火墙V2.61学习教程
  17. java中英文切换,Java实现多语言切换
  18. r7 2700X装Linux,R7 2700X大战i7 8700K:谁才是游戏玩家的菜?
  19. teamviewer 远程控制linux,Linux远程控制软件-TeamViewer
  20. 「Odoo 基础教程系列」第七篇——从 Todo 应用开始(6)

热门文章

  1. 14岁妹妹欲捐骨髓救乱患红血病哥哥
  2. 神经网络系统理论与实践,神经网络系统理论基础
  3. 神经网络方法研究及应用,神经网络基础与应用
  4. python微信开发入门_python微信公众号开发学习记录
  5. ansible启用sudo执行命令
  6. Matlab学习总结
  7. python -- 计算 平方,乘方,平方根
  8. iPhone 5s--- iPhone x越狱详细教程,MacOS系统
  9. 小米路由器 4A 千兆版折腾日志
  10. scal sdk plugin 地址 scala-intellij-bin**.zip