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 集合

 

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值