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的更多相关文章

  1. python里面的list、tuple和dict的区别

    Dictionary .Dictionary是Python中内置的数据类型之一,他定义了键和值之间一对一的关系. 每一个元素都有一个key-value对,整个元素集合用大括号{}括起来. 你可以通过k ...

  2. Python全栈开发:list 、tuple以及dict的总结

    总结: 列表:增:append(),inset(),extend() 删:pop(),remove(),clear(),del 改:a.通过指定元素和切片重新赋值.b.可以使用repelace替换列表 ...

  3. List、Tuple、Set、Dictionary数据类型

    一.List数据类型 1.概述:list(列表)中可以包含多个元素,且元素类型可以不相同. 每一元素可以是任意数据类型,包括列表(即列表嵌套)及后面要介绍的元组.集合.字典. 所有元素都写在一对方括号 ...

  4. args 、kwargs不定参数通过列表、元组、字典传递

    *args .**kwargs是不定参数的表达方法,一般用于函数形参.*args .**kwargs 作为传递参数的函数,在使用过程中,可对*args .**kwargs多个输入,但是效率或者比较麻烦 ...

  5. Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏)

      Code:https://github.com/lotapp/BaseCode 多图旧版:https://www.cnblogs.com/dunitian/p/9156097.html 在线预览: ...

  6. Python3 与 NetCore 基础语法对比(List、Tuple、Dict、Set专栏)

    Jupyter最新版:https://www.cnblogs.com/dotnetcrazy/p/9155310.html 在线演示:http://nbviewer.jupyter.org/githu ...

  7. list、tuple、dict内部功能释义

    一.list内部功能释义 运用频次:☆☆☆☆☆ 1. append():列表末尾插入元素 [示例] >>> L1=[11,22,33] >>> L1.append( ...

  8. Python之list、tuple、dict、set

    参考原文 廖雪峰Python PS:来看看Python中比较特殊的几种数据类型list.tuple.dict.set list list(列表)是Python内置的一种数据类型,它是一种有序.可变的集 ...

  9. Python--对list、tuple、dict的操作

    一.List(列表) 首先,创建一个简单的list: animal = ['cat','dog','lion','tiger'] (1) 用索引的方式访问list中的元素:animal[0] 当索引从 ...

  10. Python 学习随笔 - 2 - list 、tuple 、dict、set 特殊数据类型 及 实际应用

    1.list list是一种有序的集合,可以随时添加和删除其中的元素;  和C语言不同的地方是list里的元素甚至可以是不同类型的,甚至是另个list 例如:['A', 'B', 'C']   ['A ...

随机推荐

  1. Linux命令学习笔记(1)

    groupadd 1.作用 groupadd命令用于将新组加入系统.2.格式groupadd [-g gid] [-o]] [-r] [-f] groupname3.主要参数-g gid:指定组ID号 ...

  2. 【转载】String、StringBuffer与StringBuilder之间区别

    文章来源:http://www.cnblogs.com/A_ming/archive/2010/04/13/1711395.html 这两天在看Java编程的书,看到String的时候将之前没有弄懂的 ...

  3. 清幽傲竹实现kbmMWServer的方法(转)

    感谢竹子! 整体思路,是不用kbmMWUNIDACQuery,而是直接用uniQuery做数据查询,利用kbmMWUNIDACConnectioPool取得数据库联接,自己再建一个uniQuery对象 ...

  4. UVa 1262 (第k字典序) Password

    题意: 给出两个6行5列的字母矩阵,一个密码满足:密码的第i个字母在两个字母矩阵的第i列均出现. 然后找出字典序为k的密码,如果不存在输出NO 分析: 我们先统计分别在每一列均在两个矩阵出现的字母,然 ...

  5. Jqgrid入门-显示基本的表格(一)

    首先对Jqgrid网格插件做个简要的说明.在众多的表格插件中,Jqgrid的特点是非常鲜明的.         特点如下: 完整的表格呈现与运算功能,包含换页.栏位排序.grouping.新增.修改及 ...

  6. WebApp开发框架Ionic+AngularJS+Cordova

    目前的手机APP有三类:原生APP.WebAPP.HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Ionic Ionic是一个新的.可以使用HTML5构建混合移动应用 ...

  7. linux C 数组操作

    /****************************************************************** * linux C 数组操作 * 声明: * 本文为解决陈颖奇遇 ...

  8. FFmpeg介绍及参数详细说明

    FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库l ...

  9. RTP头结构解析

    RTP包头前12个固定字节机构图: 0                   1                   2                   3 0 1 2 3 4 5 6 7 8 9 ...

  10. Data Binding(数据绑定)用户指南

    1)介绍 这篇文章介绍了如何使用Data Binding库来写声明的layouts文件,并且用最少的代码来绑定你的app逻辑和layouts文件. Data Binding库不仅灵活而且广泛兼容- 它 ...