自学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大写
持续更新。