list、tuple、dict、set、map
list
Python内置的一种数据类型是列表。
list是一种有序的集合,可以随时添加和删除其中的元素。
# 创建list
classmate = ['micheal', 'Bob', 'Tracy']
#打印长度
len(classmate)
#访问其中的元素
classmate[0]
classmate[-1]
# 向指定位置插入元素
classmate.insert(1, 'Jack')
#删除list尾部的元素
classmate.pop()
#删除list指定位置的元素
classmate.pop(1)
#list中的元素的类型可以不同
L = ['Apple', 123, True]
#list中可以有另一个list
s = ['python', 'java', ['asp', 'php'], 'scheme']
#或者
p = ['asp', 'php']
s = ['python', 'java', p, 'scheme']
tuple
另一种有序列表叫元组:tuple。
tuple一旦初始化就不能再修改
因为tuple不可变,所以代码更安全,没有append、insert这样恩方法。
元素获取的方法和list相同。
如果可能,能用tuple的地方尽量不实用list。
#定义tuple
t = (1, 2)
#定义空tuple
t = ()
#只有一个元素的tuple,必须加 ,!!!!
t = (1, )
#可变的tuple
t = ('a', 'b', ['A', 'B'])
t[2][0]='X'
t[2][1]='Y'
dict
dict:字典,全程dictionary,其他语言中也叫做map。
存储方式为:key-value,键值对的方式。
key不允许重复,否则,后定义的值会覆盖前面定义的值
# 定义一个dict
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
# 添加元素
d['Adam'] = 67
# 判断key是否存在
'Tomas' in d
# 如果不存在,则返回null
d.get('Thomas')
# 如果不存在,则返回-1
d.get('Thomas', -1)
# 删除一个元素
d.pop('Micheal')
和list相比,1)dict查找和插入速度很快,不会随着key的增加而增加。2)需要占用大量的内存。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
set
不能重复的list。
创建一个set,需要一个list作为输入集合。
# 创建一个set
s = set([1, 1, 2, 2, 3, 3])
# 添加元素
s.add(key)
# 删除元素
s.remove(key)
# set可以看成是集合
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
# 集合的交集
s1 & s2
# 集合的并集
s1 | s2
不可变对象
- 对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
list、tuple、dict、set、map的更多相关文章
- python里面的list、tuple和dict的区别
Dictionary .Dictionary是Python中内置的数据类型之一,他定义了键和值之间一对一的关系. 每一个元素都有一个key-value对,整个元素集合用大括号{}括起来. 你可以通过k ...
- Python全栈开发:list 、tuple以及dict的总结
总结: 列表:增:append(),inset(),extend() 删:pop(),remove(),clear(),del 改:a.通过指定元素和切片重新赋值.b.可以使用repelace替换列表 ...
- List、Tuple、Set、Dictionary数据类型
一.List数据类型 1.概述:list(列表)中可以包含多个元素,且元素类型可以不相同. 每一元素可以是任意数据类型,包括列表(即列表嵌套)及后面要介绍的元组.集合.字典. 所有元素都写在一对方括号 ...
- args 、kwargs不定参数通过列表、元组、字典传递
*args .**kwargs是不定参数的表达方法,一般用于函数形参.*args .**kwargs 作为传递参数的函数,在使用过程中,可对*args .**kwargs多个输入,但是效率或者比较麻烦 ...
- Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏)
Code:https://github.com/lotapp/BaseCode 多图旧版:https://www.cnblogs.com/dunitian/p/9156097.html 在线预览: ...
- Python3 与 NetCore 基础语法对比(List、Tuple、Dict、Set专栏)
Jupyter最新版:https://www.cnblogs.com/dotnetcrazy/p/9155310.html 在线演示:http://nbviewer.jupyter.org/githu ...
- list、tuple、dict内部功能释义
一.list内部功能释义 运用频次:☆☆☆☆☆ 1. append():列表末尾插入元素 [示例] >>> L1=[11,22,33] >>> L1.append( ...
- Python之list、tuple、dict、set
参考原文 廖雪峰Python PS:来看看Python中比较特殊的几种数据类型list.tuple.dict.set list list(列表)是Python内置的一种数据类型,它是一种有序.可变的集 ...
- Python--对list、tuple、dict的操作
一.List(列表) 首先,创建一个简单的list: animal = ['cat','dog','lion','tiger'] (1) 用索引的方式访问list中的元素:animal[0] 当索引从 ...
- Python 学习随笔 - 2 - list 、tuple 、dict、set 特殊数据类型 及 实际应用
1.list list是一种有序的集合,可以随时添加和删除其中的元素; 和C语言不同的地方是list里的元素甚至可以是不同类型的,甚至是另个list 例如:['A', 'B', 'C'] ['A ...
随机推荐
- Linux 下查看文件字符编码和转换编码
Linux 下查看文件字符编码和转换编码 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linu ...
- Topcoder SRM 630 (500 floyed 暴力 _builtin_popcount())
题意:给n个点,保证图联通,给点相连的距离,求一个最多的点,这些点之间的距离都是相同的. 分析: 下面的代码是我们房间第一的大神的,写的很简洁,我的思路和他的一样,但是我不知道错哪了. 思路是暴力枚举 ...
- poj 3264 Balanced Lineup (RMQ算法 模板题)
RMQ支持操作: Query(L, R): 计算Min{a[L],a[L+1], a[R]}. 预处理时间是O(nlogn), 查询只需 O(1). RMQ问题 用于求给定区间内的最大值/最小值问题 ...
- svn is already under version control问题解决
svn ci 时出现 xx is already under version control,然后无法提交,出现这个问题的原因是你所提交的文件或目录是其他SVN的东西,即下面有.svn的目录,需要先把 ...
- 栈中的push实现
- bzoj2800
这题好难,翻了一下波兰文的题解……这好像是当年唯一没人A的题目 首先区间修改不难想到差分,我们令d1=x1,dn+1=-xn,di=xi-xi-1 注意Σdi=0,这样对于[l,r]的修改(比如+a) ...
- css,html命名规则
css,html命名规则 页头: header 登录条: loginBar 标志: logo 侧栏: sideBar 广告: banner 导航: nav 子导航: subNav 菜单: menu 子 ...
- python模拟http请求
下文主要讲述如何利用python自带的库模拟http请求,为以后利用python做API测试做准备. 只讲述模拟http的过程,具体到自己用的时候,要以自己的应用为准做出适当的调整. #!coding ...
- codevs 1172 Hankson 的趣味题
woc....这题考细节处理.要注意代码的逻辑顺序还有不要作死地循环到sqrt+1. #include<iostream> #include<cstdio> #include& ...
- c++ 完成端口资料
文章地址: http://blog.csdn.net/piggyxp/article/details/6922277 附件如下: word文档 PiggyIOCPServer_2008.rar Pig ...