自学python笔记5--数据结构

自学python笔记5

自学Python第五天,打卡!
今天主要学习数据结构的知识点
Python有四种数据结构,分别是︰列表、字典、元组,集合。

列表:
在这里插入图片描述
一、列表的特征:
1.列表中的每一个元素都是可变的;
2.列表中的元素是有序的,也就是说每一个元素都有一个位置;
3.列表可以容纳Python中的任何对象。

all_in_list=[1,1.0,'a world',print(1),True,[1,2],(1,2),{'key':'value'}]

在该列表中,分别包含了#整数#浮点数#字符串#函数#布尔值#列表中套列表#元组#字典

二、列表的增删改查
1.增

fruit=['pineapple','pear']
fruit.insert(1,'grape')
print(fruit)

结果为:
在这里插入图片描述
在使用insert方法的时候,必须指定在列表中要插入新的元素的位置,也可以使用:

fruit[0:0]=['orange']
print(fruit)

所得结果为:
在这里插入图片描述
2.删

fruit.remove('grape')
print(fruit)

remove()前后结果对比:
在这里插入图片描述
或者使用del

del fruit[0:2]
print(fruit)

使用del前后结果对比:
在这里插入图片描述

3.改

fruit[0]='grapefruit'
print(fruit)

替换前后结果对比:
在这里插入图片描述
4.查
列表的索引与字符串的分片十分相似,同样是分正反两种索引方式,只要输入对应的位置就会返回给你在这个位置上的值:

print(fruit[1])
print(fruit[-1])

在这里插入图片描述
字典
字典使用名称-内容进行数据的构建,在Python中分别对应着键(key)一值(value),习惯上称之为键值对。

一、字典的特征
字典的特征总结如下:
1.字典中数据必须是以键值对的形式出现的;
2.逻辑上讲,键是不能重复的,而值可以重复;
3.字典中的键(key)是不可变的,也就是无法修改的;而值(value)是可变的,可修改的,可以是任何对象。

字典的一般书写形式:
在这里插入图片描述

yyss={'BIDU':'Baidu','SINA':'Sina','YOKU':'Youku'}

二、字典的增删改查
1.增
与列表不同的是,字典并没有一个可以往里面添加单一元素的“方法”,但是我们可以通过这种方式进行添加:

yyss={'BIDU':'Baidu','SINA':'Sina','YOKU':'Youku'}
yyss['ELLE']='elle'
print(yyss)

结果为:
在这里插入图片描述
添加多个元素的方法:update()

yyss.update({'FB':'Facebook','WL':'Welearn'})
print(yyss)

结果:
在这里插入图片描述
2.删、查

del yyss['FB']
print(yyss)

结果:
在这里插入图片描述
需要注意的是,虽然字典是使用的花括号,在索引内容的时候仍旧使用的是和列表一样的方括号进行索引,只不过在括号中放入的一定是字典中的键,也就是说需要通过键来索引值。
同时,字典是不能够切片的,也就是说下面这样的写法应用在字典上是错误的:
在这里插入图片描述
元祖
在这里插入图片描述

元组是不可修改的,但是元组可以被查看索引,方式与列表一样。

letters=('a','b','c','d')
print(letters[0])

在这里插入图片描述

集合
在这里插入图片描述

一、
1.集合中的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。
2.集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除。

二、

a_set={1,2,3,4}
a_set.add(5)
print(a_set)

结果:
在这里插入图片描述

a_set.discard(5)
print(a_set)

结果对比:
在这里插入图片描述
数据结构的使用

1.排序

num_list=[6,2,7,4,1,3,5]
print(sorted(num_list))

在这里插入图片描述
sorted函数按照长短、大小、英文字母的顺序给每个列表中的元素进行排序,但sorted函数并不会改变列表本身。

逆序:

num_list=[6,2,7,4,1,3,5]
print(sorted(num_list,reverse=True))

在这里插入图片描述
2.两个列表同时整理:

a=[]
for i in range(1,11):
    a.append(i)
#b=[i**2 for i in range(1,11)]
#print(b)
for x,y in zip(a,letters):
    print(y,'is',x)

结果
在这里插入图片描述

其中b=[i**2 for i in range(1,11)]得到结果
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

d={i:i+1 for i in range(4)}
print(d)
d1={i:j.upper() for i,j in zip(range(1,6),'abcde')}
print(d1)#upper大写

在这里插入图片描述

持续更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值