Python容器
列表 list
1、列表的格式为,把值放入[ ]中
>>> lis = ['a', 1, ['a', 'c', 1]]
2、列表中可以嵌套任何类型
索引
因为列表是有序的,那么我们可以通过列表的索引来获取列表里面的值,而列表本身的索引是从0开始计算的
>>> lis = ["a", "b", "c", 1, 2, 3]
>>> print(lis[0])
a
>>> print(lis[-2])
2
index(self, value, start=None, stop=None) 获取从左到右第一个值的索引
>>> lis = ['a', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e']
>>> print(lis.index("a"))
0
切片
雷同于str的切片
>>> lis = ['a', 's', 'd', 'g', 'r']
>>> lis[0:2]
['a', 's']
追加
append(self, p_object) 添加在最后面,可以是其他可迭代对象
>>>lis = ["a", "b", "c", 1, 2, 3]
>>> lis.append("d")
>>> print(lis)
['a', 'b', 'c', 1, 2, 3, 'd']
extend(self, iterable) 添加其他可迭代对象
>>> lis = ["a", "b", "c", 1, 2, "a", "a", 3]
>>> lis1 = ["d", "e"]
>>> lis.extend(lis1)
>>> print(lis, lis1)
['a', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e'] ['d', 'e']
insert(self, index, p_object) 在指定索引处,插入某值
>>> lis = ['a', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e']
>>> lis.insert(1, "f")
>>> print(lis)
['a', 'f', 'b', 'c', 1, 2, 'a', 'a', 3, 'd', 'e']
删除
pop(self, index=None) 删除某个值(1.指定索引;2. 默认最后一个),并获取删除的值长度
>>> lis = ['a', 'f', 'b', 'c', 1, 2, 'a', 'a', 3, 'd']
>>> v1 = lis.pop()
>>> v2 = lis.pop(2)
>>> print(v1, v2)
d b
>>> print(lis)
['a', 'f', 'c', 1, 2, 'a', 'a', 3]
remove(self, value) 删除指定的值,左边优先
>>> lis = ['a', 'f', 'c', 1, 2, 'a', 'a', 3]
>>> lis.remove("a")
>>> print(lis)
['f', 'c', 1, 2, 'a', 'a', 3]
del + 值
>>> lis = ['f', 'c', 1, 2, 'a', 'a', 3]
>>> del lis[1]
>>> print(lis)
['f', 1, 2, 'a', 'a', 3]
复制
copy(self) 浅拷贝列表
>>> lis = ["a", "b", "c", 1, 2, 3]
>>> b = lis.copy()
>>> print(b)
['a', 'b', 'c', 1, 2, 3]
循环
可以使用for循环打印列表里面的值
>>>lis = ["a", "b", "c", 1, 2, 3]
>>> for i in lis:
print(i)
a
b
c
1
2
3
包含
A in B 判断A是否在B里面,即返回True和False
>>> lis = ['f', 1, 2, 'a', 'a', 3]
>>> v = "f" in lis
>>> print(v)
True
排序
sort(self, cmp=None, key=None, reverse=False) 按照一定的方式排序,其排序顺序为ASCII码顺序,但是列表里不能同时有数字或字符
>>> lis = ['a', 's', 'd', 'g', 'r']
>>> lis.sort()
>>> print(lis)
['a', 'd', 'g', 'r', 's']
reverse(self) 是列表成倒序排列
>>> lis = ['a', 'd', 'g', 'r', 's']
>>> lis.reverse()
>>> print(lis)
['s', 'r', 'g', 'd', 'a']
其他
clear(self) 清空列表
>>>lis = ["a", "b", "c", 1, 2, 3]
>>> lis.clear()
>>> print(lis)
[]
count(self,value) 计算列表里有多少个该值
>>> lis = ["a", "b", "c", 1, 2, "a", "a", 3]
>>> v = lis.count("a")
>>> print(v)
3
修改
>>> lis = ['a', 's', 'd', 'g', 'r']
>>> lis[2] = "e"
>>> print(lis)
['a', 's', 'e', 'g', 'r'] ## lis[索引] = 想要修改成的值
深浅拷贝
>>> print(test_list)
[[1, 2], 3, 4]
>>> print(copy_list)
[[1, 2], 3, 4]
>>> copy_list[2] = 5
>>> copy_list[0][1] = 6
>>> print(test_list, copy_list)
[[1, 6], 3, 4] [[1, 6], 3, 5] ##当改了拷贝列表里的一级元素时,源列表元素并没有改变;但是改变了二级元素时,却改变了
####用copy()只能浅拷贝第一级元素 ########################深拷贝#######################
>>> test_list = [[1,2],3,4]
>>> import copy ##引入copy模块
>>> copy_list = copy.deepcopy(test_list) ##使用里面的deepcopy方法
>>> copy_list[0][1] = 5
>>> print(test_list, copy_list)
[[1, 2], 3, 4] [[1, 5], 3, 4]
元组 tuple
元组的一阶元素不可被修改,不能被增加或者删除,但是元组的第二阶元素可以被修改,而其格式为
>>> tup = (12, 32, "a", "d")
索引
>>> tup = (12, 32, 'a', 'd')
>>> tup[0]
12
index(self, value, start=None, stop=None)
>>> tu = ('a', 'b', 'c')
>>> v = tu.index('b')
>>> print(v)
1
切片
>>> tup = (12, 32, 'a', 'd')
>>> tup[0:2]
(12, 32)
循环
>>> tup = (12, 32, 'a', 'd')
>>> for i in tup:
print(i)
12
32
a
d
长度 len()
>>> tup = (12, 32, 'a', 'd')
>>> len(tup)
4
其他
join()
>>> tu = ('a', 'b', 'c')
>>> v = "-".join(tu)
>>> print(v)
a-b-c ##注意:元组里面必须全是字符
count(self, value)
>>> tu = ('a', 'b', 'c', 'a', 'r', 'd', 'a')
>>> v = tu.count("a")
>>> print(v)
3
字典 dict
任何字典都是无序的,而布尔值(1,0)、列表、字典不能作为字典的key. 它的构造方式为:
>>> dic = {"name":"Hermaeus", "age":19, "hometown":"meishan"}
## 里面的任何一对又被称之为键值对,每一个键值对由 key:value组成
索引
1、通过关键字key获得返回值
>>> dic = {"name":"Hermaeus", "age":19, "hometown":"meishan"}
>>> dic['name']
'Hermaeus'
## 格式为,dic[key]将返回,其所对的值
2、 get(self, k, d=None)
获取与key相应的值,如果没有相应的key不会报错,如果指定“d”的话,没有找到“k”,就返回“d”
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.get("age")
>>> print(v)
19
>>> v = dic.get("lover", "He doesn't have any lover")
>>> print(v)
He doesn't have any lover
3、 items(self) 得到字典里面所有键值对的列表形式
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.items()
>>> print(v)
dict_items([('name', 'Hermaeus'), ('age', 19), ('hometown', 'meishan')])
4、 values(self) 得到dict里面所有的value
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.values()
>>> print(v)
dict_values(['Hermaeus', 19, 'meishan'])
5、 keys(self) 得到dict里面所有的key
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.keys()
>>> print(v)
dict_keys(['name', 'age', 'hometown'])
新增
格式:dic[key] = 新增的值
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> dic["hobby"] = "reading"
>>> print(dic)
{'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan', 'hobby': 'reading'}
删除
del dict[key]
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> del dic["name"]
>>> print(dic)
{'age': 19, 'hometown': 'meishan'}
pop(self, k, d=None) 获取,并从字典里面移除
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.pop("age")
>>> print(v, dic)
19 {'name': 'Hermaeus', 'hometown': 'meishan'}
popitem(self) 随机返回并删除字典中的一对键和值(一般删除末尾对),如果字典已经为空,却调用了此方法,就报出KeyError异常。
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.popitem()
>>> print(v, dic)
('hometown', 'meishan') {'name': 'Hermaeus', 'age': 19}
## 被删除的值,被储存为元组
循环
循环只能得到字典的每个key
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> for i in dic:
print(i)
name
age
hometown
长度 len()
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> print(len(dic))
3
其他
setdefault(self, k, d=None) 已存在,不设置,获取当前key对应的值;不存在,设置,获取当前key对应的值
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> v = dic.setdefault("hobby","reading")
>>> print(v, dic)
reading {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan', 'hobby': 'reading'}
update(self, E=None, **F) 更新内容
>>> dic = {'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan'}
>>> dic.update(hobby = "reading", entertainment = "coding") ##也可以是另一个字典
>>> print(dic)
{'name': 'Hermaeus', 'age': 19, 'hometown': 'meishan', 'hobby': 'reading', 'entertainment': 'coding'}
clear(self) 清空
copy(self) 浅拷贝
Python容器的更多相关文章
- python容器数据类型的特色
python容器数据类型的特色 list: 可变数据类型(不可哈希), 有序, 可索引获取, 可修改 Dict: 可变数据类型(不可哈希), 3.6版本有序, 可通 ...
- Python 学习笔记(1)Python容器:列表、元组、字典与集合
Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者 list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list( ...
- 你不知道的Python容器
你不知道的Python容器 你不知道的Python容器 散列表 ChainMap MappingProxyType 线性表 堆 参考资料 昨天阅读了<Python Tricks: The Boo ...
- python容器类型:列表,字典,集合等
容器的概念我是从C++的STL中学到的 什么是容器? 容器是用来存储和组织其他对象的对象. 也就是说容器里面可以放很多东西,这些东西可以是字符串,可以是整数,可以是自定义类型,然后把这些东西有组织的存 ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
- Docker运行python容器
容器是镜像运行的实例,而镜像保存在仓库里,测试或者发布生产环境只需要pull下来即可,相对传统的应用部署,能很好的保持环境的一致,节省运维时间.最近公司内部的java和.net服务也已经全部容器化,实 ...
- python容器类型的协议
1.协议(Protocols)与其他编程语言中的接口恒相似,它规定你哪些地方必须要定义,然而在python中的协议就显得不那么正式,事实上,在python中,协议更像是一种指南. 2.序列类型和映射类 ...
- python 容器 生成器 迭代器 总结
一.容器 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中.通常这类数据结构把所有的元素存储在内存中. >> ...
- Python 容器使用的 5 个技巧和 2 个误区
"容器"这两个字很少被 Python 技术文章提起.一看到"容器",大家想到的多是那头蓝色小鲸鱼:Docker,但这篇文章和它没有任何关系.本文里的容器,是 P ...
- Python 容器用法整理
本文整理几种基本容器:列表.元组.字典和集合的用法和collections中几种已经预先实现的容器数据结构:namedtuple(),双向链表deque,ChainMap,Counter,Ordere ...
随机推荐
- c/c++ 通用的(泛型)算法 之 只读算法,写算法,排序算法
通用的(泛型)算法 之 只读算法,写算法,排序算法 只读算法: 函数名 功能描述 accumulate 求容器里元素的和 equal 比较2个容器里的元素 写算法 函数名 功能描述 fill 用给定值 ...
- LeetCode算法题-Climbing Stairs(Java实现)
这是悦乐书的第159次更新,第161篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第18题(顺位题号是70).你正在爬楼梯,它需要n步才能达到顶峰.每次你可以爬1或2步, ...
- MATLAB与C语言对比实例:随机数生成
MATLAB与C语言对比实例:随机数生成 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.整型随机数生成函数 1.C语言程序 int intrand ...
- Java抽象类(Abstract Class)与接口(Interface)区别
抽象类与接口比较 抽象类跟接口类似,都不能实例化,可能包含不需实现方法或已实现的方法. 抽象类可以定义一些不是静态或常量的字段,定义 public, protected, private访问级别的具体 ...
- 团队作业——UML设计
Deadline:2017-10-29 20:00(课堂作业) 导言 同学们已经做了需求的分析,也做了详细的系统设计,画过了一些小小的类图/用例图,对自己要做什么应该有比较清晰的认识了.接下来,我们要 ...
- Java 过一下基础
点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...
- 删除window10没用的服务
最近学习了下resin,出了个问题,它默认端口是8080,跟Tomcat冲突了,我在使用的时候遇到了个奇怪的事情,resin4.0一直占用着我的8080端口,哪怕我用dos命令把它强制停止,不出五秒钟 ...
- 【Teradata】四舍五入函数
1.round函数(四舍五入) (1)dbscontrol设定使用普通四舍五入方式 //使用root用户登录数据库节点 dbscontrol display general . RoundHalfwa ...
- HIVE配置错误信息
原因:版本问题 解决方法:cp /root/hive/lib/当前的jlinexx.jar /root/hadoop/share/hadoop/yarn/lib
- linux学习笔记整理(五)
第六章 Centos7用户管理本节所讲内容:6.1 用户和组的相关配置文件6.2 管理用户和组6.3实战:进入centos7 紧急模式恢复root密码 用户一般来说是指使用计算机的人,计算机对针使用其 ...