Python学习笔记3——组合数据类型

一.列表

1.1 列表的定义

1.列表元素可以是各种数据类型

2.列表 = [data1, data2, data3...]

3.生成列表——list(可迭代对象)

        返回值为由可迭代对象分割形成的列表

        实现字符串/元组/集合等向列表的转换

a = (1, 2, 3, 4, 5)

list(a)

out>>>[1, 2, 3, 4, 5]

4.range()函数——生成可迭代对象

        range(起始数字, 终止数字, 数字间隔) ——终止数字取不到,类似切片操作

        起始数字缺省默认为0

        终止数字不可缺省

        数字间隔缺省默认为1

        for i in range(5): 等价于 for i in [1, 2, 3, 4, 5]:

5.range()转列表

        list(range(5)) == [0, 1, 2, 3, ]

1.2 列表的性质

1.len(列表)

        返回值为列表的长度

2.列表的索引——正向/反向,与字符串索引相同

        变量名[位置编号]

3.列表的切片(与上一章字符串切片完全相同)

        变量名[开始位置: 结束位置: 切片间隔]

4.可以打包、解包赋值

1.3 对列表的操作

1.列表相加

a = [1, 2, 3]

b = [4, 5, 6]

a+b

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

2.列表*n

a = [1, 2]

a*2

out>>>[1, 2, 1, 2]

3.列表初始化的一种方式

        a = [0] * 10

4.增加元素

        ①末尾增加元素——列表.append(增加元素)

a = [1, 2]
a.append(3)
a
out>>>[1, 2, 3]

        ②任意位置增加元素——列表.insert(插入位置, 插入元素)

a = [1, 2]

a.insert(1,3)

a

out>>>[1, 3, 2]

        ③列表1末尾添加列表2作为单个元素——列表1.append(列表2)

        改变的是列表1

a=[1, 2]

b=[3, 4]

a.append(b)

a

out>>>[1, 2, [3, 4]]

        ④列表1末尾逐个添加列表2的元素——列表1.extend(列表2)

        是对列表1使用的方法,改变的是列表1,区别于列表加法

a=[1,2]

b=[3,4]

a.extend(b)

a

out>>>[1, 2, 3, 4]

5.删除元素

        ①列表.pop(位置编号)

a=[1, 2, 3, 4]

a.pop(1)

a

out>>>[1, 3, 4]

        若省略位置编号,默认删除最后一个

        ②列表.remove(待删元素)

        作用从编号0开始删除第一个出现的待删元素

a=[1, 2, 3]

a.remove(1)

a

out>>>[2, 3]

6.查找元素——列表.index(待查元素)

        返回值为第一次出现待查元素的位置编号

a = [1, 2, 3]

idx = a.index(2)

idx

out>>>1

7.修改元素——先索引后赋值

        a[1] = 3

8.列表的赋值

        ①错误方式——列表1 = 列表2

        相当于换了个名字存储这个列表,可理解为将地址进行了赋值

        原列表改变会导致”新列表“改变

a = [1, 2, 3]

b = a

b

out>>>[1, 2, 3]

a.pop()

a

out>>>[1, 2]

b

out>>>[1, 2]

        ②正确方法——列表浅拷贝

        列表 = 待拷贝列表.copy()

        原列表改变不影响新列表

a = [1, 2, 3, 4, 5]

b = a.copy()

b

out>>>[1, 2, 3, 4, 5]

        ③正确方法——列表浅拷贝——切片赋值

        列表 = 待拷贝列表[ : ]

a = [1, 2, 3, 4]

b = a[:]    #默认从0到结束

a

out>>>[1, 2, 3, 4]

9.列表的排序

        ①使用.sort()方法对列表进行永久排序,列表直接改变

a = [1, 3, 2, 5, 4]

a.sort()                            #默认从小到大排序

a

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

a.sort(reverse = True)    #从大到小排序

a

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

        ②使用 sorted(列表) 进行临时排序,列表本身不改变,返回值为排序后列表

b = sorted(a, reverse = True)

10.列表的翻转

        ①切片方法——a[ : : -1],列表本身不改变

        ②列表.reverse()——永久反转,列表本身发生改变,无返回值

11.for循环对列表元素进行遍历

a = [1, 2, 3, 4, 5]

sum = 0

for i in a:

    sum += i

sum

>>>15

二.元组

2.1 元组的性质

1.元组也属于序列类型,跟列表一样可以使用多种类型元素

2.外型上:元组的元素用括号包围

3.可以将元组视为不可变的列表可索引访问,但不可增加、删除、修改

2.2 对元组的操作

1.多用于打包、解包场景

x = 2, 3 #打包赋值

x

(2, 3)

a, b = x #解包赋值

a

>>>2

b

>>>3

2.zip函数——zip(列表1, 列表2)

        将列表1和列表2中的元素以元组的形式一一配对

a = [1, 2, 3]

b = [11, 22, 33]

list(zip(a,b))

>>>[(1, 11), (2, 22), (3, 33)]

x, y, z = zip(a, b) #也可用于解包赋值

x

>>>(1, 11)

y

>>>(2, 22)

z

>>>(3, 33)

3.除不能增、删、改以外,其他操作与列表均相同

三.字典

3.1 字典的生成

1.通过键—值映射实现数据存储和查找

2.形式:dict = {i: "熊大", j: "熊二", k:"熊三"}

3.2 字典的性质

1.字典是无序的,只能通过键索引访问,访问后可以改变

2.字典的键不可重复,相当于位置编号

3.字典的一定是不可变类型——数字、字符串、元组

3.3 对字典的操作

1.字典的长度:len(字典)——键值对个数

2.字典的索引:字典[键]

dict = {i: "熊大", j: "熊二", k:"熊三"}

dict[k]

>>>'熊三'

dict[k] = "光头强"

dict[k]

>>>'光头强'

dict

>>>{1: '熊大', 2: '熊二', 3: '光头强'}

3.字典的增加:字典[新键名] = 新值

4.字典的删除

        ①del 字典[待删除键]

        ②字典.pop(待删除键)

        返回值为删除键对应的值

字典.popitem()

        随机删除一个键值对

        返回值为这个键值对的元组形式

5.字典的修改:索引后赋新值

6.字典.get(key, default)

        若在字典中找得到这个键,则返回其对应的值

        若在字典中找不到这个值,则返回default的值

7.字典.keys()——以列表的形式存储所有键并返回

8.字典.values()——以列表的形式存储所有值并返回

9.字典.items()——将字典的一键一值分别作为元组打包起来

dict = {1: '熊大', 2: '熊二', 3: '光头强'}

dict.items()

>>>dict_items([(1, '熊大'), (2, '熊二'), (3, '光头强')])

10.for循环配合.items()方法

for i,j in dict.items():

    print(i, j)

>>>1 熊大

>>>2 熊二

>>>3 光头强

四.集合

4.1 集合的表达

1.a = {1, 2, 3}

2.集合是一系列互不相等的元素的无序集合

3.可以看作是只有键没有值的字典

4.2 集合的运算——返回值为集合类型

1.交集运算——集合A & 集合B

2.并集运算——集合A & 集合B

3.非交集运算——集合A ^ 集合B

4.3 对集合的操作

1.增加元素——集合.add(x)

2.删除元素——集合.remove(x)

3.集合长度——len(集合)

4.集合遍历——for i in 集合

 

      今天的学习笔记就到这里啦,如果你觉得这篇文章对你有帮助的话,还请能够点一个赞,笔者是一名大二学生,在学习的过程中会持续更新自己的学习笔记,若有出错的地方烦请大家指教,有什么建议也可以告诉我哦,希望大家能够一起进步!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340