列表list,用中括号“[ ]”表示

1.任意对象的有序集合 
列表是一组任意类型的值,按照一定顺序组合而成的 
2.通过偏移读取 
组成列表的值叫做元素(Elements)。每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现 
3.可变长度,异构以及任意嵌套 
列表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套 
4.可变的序列 
支持索引、切片、合并、删除等等操作,它们都是在原处进行修改列表 
5.对象引用数组 
列表可以当成普通的数组,每当用到引用时,Python总是会将这个引用指向一个对象,所以程序只需处理对象的操作。当把一个对象赋给一个数据结构元素或变量名时,Python总是会存储对象的引用,而不是对象的一个拷贝

L.append(var) # 追加元素,加在最后

L.insert(index,var) # 在index的位置追加元素,位置就是索引

L.pop(var) # 从list中删除最后一个元素,并返回该元素

L.remove(var) # 删除第一次出现的该元素

L.count(var) # 该元素在列表中出现的个数

L.index(var) # 该元素的位置(索引号),无则抛异常

L.extend(list) # 追加list,即合并list到L上,两个列表合并

L.sort() # 排序

L.reverse() # 原地翻转列表,从前到后变成从后向前

l = [1,2,3,4,['hello','johnny'],'blog.csdn.net/z_johnny'] # 创建list

l[1:5:2] # list的切片,切一部分,范围为索引[1,5),即1、2、3、4不包括5,隔2取1个值 l[1:5:2] == [2, 4]

l[1] # list的索引,左1索引为0,右1索引为-1,l[1] == 2

l[4][1] # 列表支持嵌套,l[4][1] == 'johnny'

元祖tuple,用小括号“( )”表示

1.任意对象的有序集合 
与列表相同 
2.通过偏移存取 
与列表相同 
3.属于不可变序列类型 
类似于字符串,但元组是不可变的,不支持在列表中任何原处修改操作,不支持任何方法调用 
4.固定长度、异构、任意嵌套 
固定长度即元组不可变,在不被拷贝的情况下长度固定,其他同列表 
5.对象引用的数组 
与列表相似,元祖是对象引用的数组

和list相比 
1.比列表操作速度快 
2.对数据“写保护“ 
3.可用于字符串格式化中 
4.可作为字典的key

t.count(var) # 该元素在元组中出现的个数

t.index(var) # 该元素的位置(索引号),无则抛异常

t = (1,2,3,4,['hello','johnny'],'blog.csdn.net/z_johnny') # 创建tuple

tu = (5,) # 只含有一个元素的元祖,必须加逗号“,”

t[1:5:2] # tuple的切片,切一部分,范围为索引[1,5),即1、2、3、4不包括5,隔2取1个值 t[1:5:2]== (2, 4)

t[1] # tuple的索引,左1索引为0,右1索引为-1,t[1] == 2

t[4][1] # 同列表一样支持嵌套,t[4][1] == 'johnny'

字典dict,用大括号“{key,value}”表示

1.通过键而不是偏移量来读取 
字典就是一个关联数组,是一个通过关键字索引的对象的集合,使用键-值(key-value)进行存储,查找速度快 
2.任意对象的无序集合 
字典中的项没有特定顺序,以“键”为象征 
3.可变长、异构、任意嵌套 
同列表,嵌套可以包含列表和其他的字典等 
4.属于可变映射类型 
因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值。字典是唯一内置的映射类型(键映射到值的对象) 
5.对象引用表 
字典存储的是对象引用,不是拷贝,和列表一样。字典的key是不能变的,list不能作为key,字符串、元祖、整数等都可以

和list比较,dict有以下几个特点: 
1.查找和插入的速度极快,不会随着key的增加而增加 
2.需要占用大量的内存,内存浪费多 
而list相反: 
1.查找和插入的时间随着元素的增加而增加 
2.占用空间小,浪费内存很少 
所以,dict是用空间来换取时间的一种方法

d = {'Name': 'Johnny', 'Address':'blog.csdn.net/z_johnny'} # 创建dict

d['Name'] # 找出key为Name的值 d['Name'] == 'Johnny'

d['Name'] = hello # 更新key为Name的值 Name对应的值从Johnny改为hello

del d['Address'] # 删除key为Name的值和该key d = {'Name': 'Johnny'}

d.clear() # 删除字典d中的所有元素 d = {}

d.pop('Name') # 删除字典d中key为'Name'的值和该键

d.copy() # 返回字典d的浅复制副本

d.fromkeys(S[,v]) # 创建一个新的字典,设置键为seq 和值为value

d.get(key, default=None) # 返回该键key的值,若没有该键,则返回None

d.has_key(key) # 如果在字典d中存在键key,则返回true,否则返回 false

d.items() # 返回字典的(键,值)元组对的列表

d.keys() # 返回字典的键的列表

d.values() # 返回字典d的值列表

d.setdefault(key, default=None)# 类似get(),但会设定d[key]=default 如果key不在字典d中

d.update(d2) # 将字典d2的键值对增加到字典d中

d.iteritems() # (键,值)项的一个迭代器

d.iterkeys() # 字典d中键的一个迭代器

d.itervalues() # 字典d中值的一个迭代器

d.popitem() # 删除元组返回键、值,若字典d为空会报key错

d.viewitems() # 像对象一样提供字典d中项的一个视图

d.viewkeys() # 像对象一样提供字典d中key的一个视图

d.viewvalues() # 像对象一样提供字典d中value的一个视图

集合set,用小括号“( )”表示

1.是一组key的集合,但不存储value,并且key不能重复 
创建一个set,需要提供一个list作为输入集合,s = set([1,2,3]),注意,传入的参数 [1, 2, 3] 是一个list,而显示的 set([1, 2, 3]) 只是告诉你这个set内部有1,2,3这3个元素,显示的[ ]不表示这是一个list 
2.重复元素在set中自动被过滤 
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作

还有一种集合是forzenset( ),是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法

和dict对比 
1.set和dict的唯一区别仅在于没有存储对应的value 
2.set的原理和dict一样,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”

s = set([1,2,3]) # 创建一个数值set,有1,2,3三个元素s == set([1, 2, 3])

se = set('Hello') # 创建一个唯一字符的集合s == set(['H', 'e', 'l', 'o'])

a = s | se # s 和 se 的并集 set([1, 2, 3, 'e', 'H', 'l', 'o'])

b = s & se # s 和 se 的交集 set([]) 没有相同项为空

c = s – se # 求差集(项在s中,但不在se中) set([1, 2, 3])

d = s ^ se # 对称差集(项在s或se中,但不会同时出现在二者中) # set([1, 2, 3, 'e', 'H', 'l', 'o'])

s.issubset(t) # 如果s是t的子集,则返回True,否则返回False

s.issuperset(t) # 如果t是s的超集,则返回True,否则返回False

s.union(t) # 返回一个新集合,该集合是s和t的并集

s.intersection(t) # 返回一个新集合,该集合是s和t的交集

s.difference(t) # 返回一个新集合,该集合是 s 的成员,但不是 t 的成员

s.symmetric_difference(t) # 返回一个新集合,该集合是s或t的成员,但不是s和t共有的成员

s.copy() # 返回一个新集合,它是集合s的浅复制

s.update(t) # 用t中的元素修改s,即s现在包含s或t的成员

s.intersection_update(t) # s中的成员是共同属于s和t中的元素

s.difference_update(t) # s中的成员是属于s但不包含在t中的元素

s.symmetric_difference_update(t) # s中的成员更新为那些包含在s或t中, # 但不是s和t共有的元素

s.add(obj) # 在集合s中添加对象obj

s.remove(obj) # 从集合s中删除对象obj,如果obj不是集合s中的元素 # (obj not in s),将引发KeyError

s.discard(obj) # 如果obj是集合s中的元素,从集合s中删除对象obj

s.pop() # 删除集合是中的任意一个对象,并返回它

s.clear() # 删除集合s中的所有元素

Python基础学习四 列表、元组、字典、集合的更多相关文章

  1. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  2. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  3. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  4. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  5. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  6. python_列表——元组——字典——集合

    列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

  7. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  8. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  9. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

随机推荐

  1. mcake活动维护常见问题记录【wap端】 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ wap端问题及解决方法 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 一.wap端弹窗 .Dialogbg-Select{ background-co ...

  2. php压缩文件帮助类

    <?php /* File name: /include/zip.php Author: Horace 2009/04/15 */ class PHPZip{ var $dirInfo = ar ...

  3. Web目录结构

    /: Web应用的跟目录,该目录下所有文件在客户端都可以访问(JSP,HTML) /WEB-INF: 存放应用使用的各种资源.该目录及其子目录对客户端都是不可以访问的, 其中包括web.xml(部署表 ...

  4. bat中for /f 如何截取任意行

    一.概述 for命令开关有很多,/L,/F,/R.这里仅对含有/F的for进行分析,这个可能是最常用的,也是最强的命令,主要用来处理文件和一些命令的输出结果. 1.命令格式:(1).FOR /F [& ...

  5. FindBugs初探

    1. 什么是FindBugs FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行 ...

  6. 类Flask实现前后端交互之代码聊天室

    前言 框架 项目目录及各自功能 流程图 后端 server backend exector 前端 ajax 页面更新 演示 简易应答模式 代理模式处理外部请求 后台日志 总结 前言 这两天老是做梦,全 ...

  7. mysql基本操作(重点)

    显示数据库 show databases 进入指定数据库 use 数据库名称 创建数据库 create database 数据库名称 default character set=utf8 删除数据库 ...

  8. tslib: Selected device is not a touchscreen (must support ABS_X and ABS_Y events)

    /************************************************************************************ * tslib: Selec ...

  9. (效果三)js实现选项卡切换

    开发了很久的小程序,在接到一个h5移动端页面的时候,很多原生的东西都忘了,虽然说我们随着工作经验的增加,处理业务逻辑的能力在提高,但是基础的东西如果长时间不用,也会逐渐忘记.所以以后会经常总结原生的一 ...

  10. [转载]Lwip之IP/MAC地址冲突检测

    from: http://blog.csdn.net/tianjueyiyi/article/details/51097447 LWIP是个轻量级的TCP/IP协议栈,之所以说轻量级,是因为作者将主体 ...