Python序列(列表、元组、字典、集合)

一、列表(List)与列表推导式

(一)列表(list)

1.列表是Python内置

可变序列

(列表中元素可增加删除或修改);

2.列表元素放在一对中括号[ … ]中,通过下标访问(下标从0到n-1表示从左向右访问,下标从-1到-n表示从右向左访问);

如:

>>>lst=[1,2,3,4,5,6]

>>>lst[0]

1

>>>lst[-1]

6

3.元素之间用逗号隔开,元素之间没有空隙(增加或删除元素时列表会自动扩展或收缩);

4.同一列表中各元素类型可以不同;

(二)列表常用方法(函数)

#列表的创建与删除:

1.直接用“=”赋值创建一个列表

2.list()系统函数将其他对象转换为列表

3.del命令 用于删除列表或元素

#列表元素操作方法:

方法

说明

lst.append(x)

将元素x添加至列表lst尾部

lst.extend(L)

将列表L中的全部元素添加至列表lst尾部

lst.insert(index,x)

在列表lst指定位置index处添加元素x,该位置后面的所有元素后移一位

lst.remove(x)

在列表lst删除首次出现的指定元素,该元素之后的所有元素前移一位

lst.pop([index])

删除并返回列表lst中下标为index(默认为-1)的元素

lst.clear()

删除列表lst中的所有元素,但保留列表对象

lst.index(x)

返回列表lst中第一个值为x的元素的下标,若不存在则抛出异常

lst.count(x)

返回指定元素x在列表lst中出现的次数

lst.reverse()

对列表所有元素进行逆序

lst.sort(key=None,reverse=False)

对列表lst中的元素进行排序,key用来指定排序依据,reverse决定升序(False)还是降序(True)

lst.copy()

返回列表lst的浅复制

注:(应尽量避免在列表中间插入或删除元素,或影响后面所有元素的下标)

1.append()、insert()、extend()都可以用于向列表添加元素,但这三个方法属于原地操作,不影响列表对象在内存中的起始地址;“+”(将两个列表的元素合成新的列表)和“*”(列表重复)也可以实现列表增加元素,但这两个运算符不属于原地操作而是返回新列表。

2.pop()、remove()、clear()用于删除列表元素,这三个方法属于原地操作不影响列表对象的内存地址;del命令也是原地操纵,也可以用于删除列表或列表元素。

3.sort()和reverse()是对列表原地排序和逆序,即用处理后的数据替代原始的数据,列表中元素原始的顺序全部丢失;若不想丢失原始列表,可以使用内置函数sorted()和reversed()会返回一个新的排序或者逆序后的迭代对象,对原始列表不做任何修改。

#内置函数对列表的操作

内置函数

说明

max()

返回列表中所有元素的最大值

min()

返回列表中所有元素的最小值

sum()

返回数值型列表中所有元素之和

len()

返回列表中元素个数

zip()

将多个列表中元素

重新组合为元组

并返回包含这些元组的

zip对象

enumerate()

map()

将一个函数依次作用到序列或迭代器对象的每个元素上,并

返回一个map对象

作为结果

reduce()

可以将一个接受两个参数的函数以

累积的方式

从左到右依次作用到一个序列或迭代器对象的所有元素上

filter()

将一个单参函数作用到一个序列上,返回该序列中使得函数返回值为True的元素组成的filter对象,如果指定函数为None则返回序列中等价于True的元素

注:Python列表本身不支持其中元素直接的加、减、乘、除运算,但可以借助内置函数、标准库operator或扩展库numpy实现更复杂更强大的功能。

(三)列表推导式

#语法形式:lst[表达式 for 变量 in 序列或迭代对象]

1.嵌套列表的平铺

>>>vector=[[1,2,3],[3,2,1],[4,5,6]]

>>>lst=[num for elem in vector for num in elem]

>>>lst

[1,2,3,3,2,1,4,5,6]

2.过滤不符合条件的元素

3.在列表推导式中使用多个循环,实现多序列元素的任意组合,并且可以结合条件语句过滤特定元素

4.使用列表推导式实现矩阵转置

5.列表推导式中使用函数或者复杂表达式

6.列表推导式支持条件对象迭代

7.使用列表推导式生成100以内的所有素数

鉴于列表推导式本身内容的广度和难度以及在Python编程中的优越性,将在之后单独的博文中专门总结列表推导式有关内容

(四)切片

#格式:

lst[num1:num2:num3]-----------num1:起始位置(默认为0) ,num2:终止位置(默认列表长度,但不包含此位置),num3:步长(默认为1,当步长省略时同时可省略第二个冒号)

>>>lst=[3,4,5,6,7,8,9]

>>>lst[1::2] #隔一个元素取一个元素,获取奇数位置的元素

[4,6,8]

>>>lst[3:6] #指定切片的起始位置(前闭后开),当结束位置大于列表长度时从列表尾部截断

[6,7,8]

#使用方法:

切片适用于列表、元组、字符串、range对象等类型,可以用来截取列表中的任何一部分返回得到一个新的列表,也可以通过切片修改、删除、增加列表中部分元素。

>>>lst=[3,5,7]

>>>lst[len(lst):]=[9] #在列表尾部增加元素

>>>lst

[3,5,7,9]

>>>lst[:3]=[1,2,3] #替换列表元素

>>>lst

[1,2,3,9]

>>>lst[:3]=[] #删除列表元素

>>>lst

[9]

>>>lst[0:0]=[1,3] #在指定位置插入元素

>>>lst

[1,3,9]

二、元组(Tuple)与生成器推导式

(一)元组(tuple)

元组的所有元素放在一对圆括号“(…)”中,属于

不可变序列

,也是通过下标访问其中元素,不能修改、增加或删除其中元素;但支持切片来访问其中的元素(切片方法同上!)。

(二)生成器推导式

注:

生成器涉及更进一步的知识,在之后的补充博客或专题中再详细介绍

三、字典(Dict)

(一)字典(Dict)

字典是包含若干“

键:值

”元素的

不可变序列

,键和值两部分是一种映射或对应关系,两者一起组成字典的元素,以键为下标即可访问元素的值,元素之间用逗号分隔开,字典元素存放在一对大括号“{…}”中;

字典的键不允许重复但值可以重复

(二)语法和函数

#字典的创建

1.赋值运算符“=”将字典赋给一个变量

2.内置函数dict()用已有数据快速创建字典

>>>key=['a','b','c']

>>>value=['you','me','him']

>>>D=dict(zip(key,value)) #zip()函数

>>>D

{'a':'you','b':'me','c':'him'}

3.内置函数dict()根据给定 键:值 来创建字典

>>>Dict_A=dict(name='xk',age=21)

>>>Dict_A

{'age':21,'name'='xk'}

#字典元素操作

1.指定“键”为下标对元素赋值时:若该“键”存在则修改对应元素值,若不存在则添加新的元素

2.update():将另一个字典的“键:值”一次性全部添加到当前字典,存在相同的键时以另一个字典的键值为准。

3.del命令可用于删除整个字典或字典中的元素

4.pop()和popitem()用于弹出并删除指定元素

5.clear()用于清空字典但保留字典对象

6.copy()用于返回字典对象的浅复制

7.get(‘键’,‘默认值’):若字典中存在指定的键则返回相应的值,若不存在则返回指定的默认值

8.setdefault(‘键’,‘指定值’):若字典中存在该键则返回相应的值,若不存在则将’键:指定值’作为一个新的元素添加到字典。

9.当对字典对象进行迭代时,默认是遍历字典的“键”,items()方法返回字典中的元素,keys()方法返回所有“键”,values()方法返回所有“值”。

10.内置函数len(),max(),min(),sum(),sorted()也适用于字典对象,但默认作用于字典的“键”,若想作用于字典的元素,可以用字典对象的items()指定。

四、集合(Set)

(一)集合:

集合是

无序可变序列

,元素之间用逗号隔开,使用一对大括号作为界定符,元素之间不允许重复。集合中只能包含数字、字符串、元组等不可变类型的数据,而不能包含列表、字典、集合等可变类型的数据。(Python中字典和集合都采用

hash表

来存储元素,查找速度非常快,所以关键字in作用于字典和集合时比列表要快得多)

(二)语法和函数:

#集合元素的增加和删除

方法

说明

add()

增加新元素,如果该元素已存在则忽略此操作

update()

合并另一个集合中的元素到当前集合中

pop()

随机删除并返回集合中的一个元素,集合为空时抛出异常

remove(x)

删除集合中的指定元素x(集合是无序序列,x不代表下标),元素不存在时抛出异常

discard(x)

用于从集合中删除一个特定的元素x,如果不存在x则忽略此操作

clear()

清空集合删除所有元素

#交集、并集、差集(a、b两变量代表两个集合)

a|b 并集

a.union(b) 并集

a&b 交集

a.intersection(b) 交集

a.difference(b) 差集

a.symmetric_difference(b) 对称差集

注1:

>,<,<=,>=作用于集合时表示集合之间的包含关系而不是集合中元素之间的大小关系。AB就成立。

len()、max()、min()、sum()、sorted()以及成员测试运算符in也适用于集合

注2:

特别感谢清华大学董付国老师及其编著的《Python可以这样学》,本文灵感大部分均源于此。

侵删。转载请注明出处。

python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...相关推荐

  1. python中list列表添加元素的三种方法

    使用 + 运算符可以将多个序列连接起来:列表是序列的一种,所以也可以使用 + 进行链接,这样就相当于在第一个列表的末尾添加了另一个列表 示例: a_list = ["city",& ...

  2. python如何删除代码_Python列表删除的三种方法代码分享

    1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> prin ...

  3. 《 Python List列表全实例详解系列(三)》——列表添加元素(4种方法)

    < Python List列表全实例详解系列(三)> --列表添加元素(4种方法) 接上一篇:< Python List 列表全实例详解(二)>__访问列表元素(索引和切片)列 ...

  4. JS数组添加元素的三种方法

    JS数组添加元素的三种方法 1.push() 方法可以向数组末尾添加一个或多个元素,并且返回新的长度 语法:arr.push(element1,element2,element3,····) 参数 概 ...

  5. 测试Python下载图片的三种方法

    简 介: 通过Python软件包对网络URL图片链接进行下载,可以加快后期处理.本文测试了urllib, request两个软件包对图片进行下载效果.如果图片原网页有了防止下载机制,是无法下载图片. ...

  6. python学习音频-详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  7. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  8. python字符串连接的三种方法及其效率、适用场景详解

    python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39;+& ...

  9. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

最新文章

  1. 4,fail-fast错误机制
  2. php正则替换imgsrc_php如何替换img中src内容
  3. Redis三种特殊类型
  4. Reporting Service
  5. cpp加密php,常用的数据加密规则算法(php包含MD5和RSA)
  6. kdj超卖_一个判断股票超买超卖现象的指标——KDJ,简单明了,准确且省心
  7. .Net Core Configuration Etcd数据源
  8. 【渝粤教育】广东开放大学 房屋建筑学 形成性考核 (50)
  9. 计算机应用技术爱岗敬业,高职专业人才培养方案(计算机应用技术).doc
  10. 使用AndroidStudio编译NDK的方法及错误解决方式
  11. matlab循环取出矩阵的某一行并标示上A1 A2 A3
  12. 织梦mysql安装教程视频教程_dedecms织梦模板安装教程视频/图文步骤(模板秀出品)...
  13. matlab命令窗口双大于号不显示了 回车命令不管用了,怎么改才能恢复
  14. 离职时如何拒绝领导的挽留
  15. 科技公司官网小程序-总体介绍
  16. 东北酱油 模拟赛 期望dp
  17. PS软件学习知识盘点
  18. 衣新履靓,智能商业空间的鞋服行业应用
  19. NoSQL数据库的基础知识
  20. c语言中函数floor用法,C 库函数

热门文章

  1. Halcon算子学习:create_sheet_of_light_model
  2. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 17丨文章浏览 I【难度简单】​
  3. 安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断
  4. apt-get、apt、yum、dpkg、rpm
  5. nohup 与 linux 程序后台执行
  6. C++学习之路 | PTA乙级—— 1082 射击比赛 (20 分)(精简)
  7. 1053 Path of Equal Weigh(甲级)
  8. mysql联合索引和单索引_mysql联合索引跟单列索引的区别
  9. 版本不见了_王者荣耀复古版本来袭?第四代主宰形象回归!可以给小兵加速
  10. python 除法取模_跟我一起学python | 探究05