这是python入门教程的第三篇的内容,会具体介绍在Python中常用的四种数据结构,分别是列表,元祖,集合,字典,这些内容在之后是很常用的,所以要对每一种数据结构都要有所理解。

关于行间距的问题,我今天重新看了一下,好像代码那里行间距已经是最小了,没有办法再调整了,用手机看的话会有些大,如果要更好的阅读效果的话,可以点击阅读原文,在网站上浏览,效果会好一些。

python列表,元祖,集合,字典

这一篇我们会讲python中常用的四种数据结构,列表,元祖,集合,字典

· List []

· Tuple ()

· set {}

· dict {key:value}

列表 List

定义

animals = [‘tiger’,’bear’,’lion’]

末尾增加-append

调用append方法向列表末尾添加元素

animals.append(‘horse’)

animals

[‘tiger’,’bear’,’lion’,’horse’]

索引

我们可以通过索引来访问列表中的每个元素,第一个元素的索引是0,最后一个元素的索引是-1

animals[0]

‘tiger’

animals[-1]

‘horse’

我们可以使用len获取列表长度

len(animals)

4

任意位置添加–insert

上面我们讲了append是向列表的末尾进行添加,下面我们讲得insert可以向列表任意位置进行添加

animals.insert(1,’eagle’)

animals

[‘tiger’, ‘eagle’, ‘bear’, ‘lion’, ‘horse’]

删除任意指定值

我们使用remove删除指定的值

animals.remove(‘tiger’)

animals

[‘eagle’, ‘bear’, ‘lion’, ‘horse’]

注意:如果tiger出现多次,只有第一个tiger会被删除

按索引删除关键字

del animals[1]

animals

[‘eagle’, ‘lion’, ‘horse’]

列表反转

我们要记住列表是有序的,这个可以与其他数据结构进行比较,所以我们可以对有序的列表进行反转

animals.reverse()

animals

[‘horse’, ‘lion’, ‘eagle’]

列表的合并

animals.extend([‘tiger’,’bear’])

animals

[‘horse’, ‘lion’, ‘eagle’, ‘tiger’, ‘bear’]

查找

animals.index(‘lion’)#返回索引

1

animals.count(‘lion’)#返回出现次数

1

‘lion’ inanimls#返回布尔类型

True

修改

animals[0] = ‘horses’

animals

[‘horses’, ‘lion’, ‘eagle’, ‘tiger’, ‘bear’]

pop的使用

pop返回列表的最后一个元素,在返回这个元素的同时也会删除这个元素,若传入一个参数pop(i)则将第i个元素弹出

for i inrange(len(animals)):

animal = animals.pop()

print(animal) #把整个列表倒叙输出

>

bear

tiger

eagle

lion

horses

animals #此时列表是空的

[]

animals.append(‘tiger’)#我们可以往里面添加值

animals

[‘tiger’]

List乘法

list1 = [1,2,3]

list1*3

[1, 2, 3, 1, 2, 3, 1, 2, 3]#列表重复三次

元祖 Tuple

元祖是一种特殊的列表,不同点是元祖一旦创建就不能修改,上述修改列表内容的操作例如sort(),append()等对元祖都不在适用。

在编写程序的时候,元祖比列表更安全,如果是只读数据,尽可能使用元祖。

创建元祖

animals = (‘tiger’,’lion’,’bear’)

注意

如果创建的元祖只有一个元素,需要在元素后面跟一个逗号

animals =(‘tiger’)

type(animals)#可以看到这里是str类型

str

animals

‘tiger’

animals =(‘tiger’,)

type(animals)

tuple

animals

(‘tiger’,)

集合 Set

集合是一个无序不重复的数据集,对比列表,首先是无序的,不可以使用索引来进行访问,另一个特点是不能有重复的数据

集合支持数学上的一些运算,例如:union(并集),intersection(交集),difference(补集)

集合的创建

集合的创建使用set函数或者{},注意空集合的创建只能使用set函数,使用{}创建的是一个空的字典。

animals ={‘tiger’,’bear’,’lion’,’eagle’,’tiger’}

animals

{‘bear’,’eagle’, ‘lion’, ‘tiger’} #可以看到重复的元素已经被去除

animals =set([‘tiger’,’bear’,’lion’,’eagle’,’tiger’])

type(animals)

set

animals

{‘bear’, ‘eagle’, ‘lion’, ‘tiger’} #可以看到重复的元素已经被去除

查看元素是否在集合中

‘tiger’ in animals

True

‘tigers’in animals

False

‘tigers’not in animals #注意这里是 not in

True

集合的增删

animals.add(‘horse’)

animals

{‘bear’, ‘eagle’, ‘horse’, ‘lion’, ‘tiger’}

animals.remove(‘horse’)

animals

{‘bear’, ‘eagle’, ‘lion’, ‘tiger’}

集合子集的概念

<=–属于

set1 ={1,2,3}

set2 ={2,3}

set2 inset1

False #思考这是为什么

set2 <=set1

True

集合的运算

set1 = {1,2,3,4}

set2 ={3,4,5,6}

· | 操作,存在 set1 中或 set2 中的元素,等效于 union 操作

set1|set2

{1,2,3,4,5,6}

set1.union(set2)

{1,2,3,4,5,6}

· & 操作,返回即在 set1 又在 set2 的元素

set1&set2

{3,4}

· - 返回在 set1 不在 set2 的元素

set1-set2

{1,2}

· ^ 操作,返回只存在两个集合中的元素

set1^set2

{1,2,5,6}

字典 dict

字典是无序的键值对集合。字典中的每一个元素都是一个key和一个value的组合,key值在字典中必须是唯一的,因此很方便的从字典中使用key来获取其对应的value的值

字典的创建

animals = {1:’tiger’,2:’lion’,3:’horse’}

animals[1]

‘tiger’

字典中value的获取

如果key不存在,那么dict[key]会抛出错误,有时候为了避免错误的出现,我们会使用get()函数来获取key对应的value,如果这个key不存在,那么就默认返回None

animals.get(1)

‘tiger’

animals.get(4,’default’)

‘default’ #key不存在的时候,返回默认值

增加元素

animals[4]=’eagle’ #只需要为字典中key进行赋值

animals

{1: ‘tiger’, 2: ‘lion’, 3: ‘horse’, 4: ‘eagle’}

删除元素

del animals[4]

animals

{1: ‘tiger’, 2: ‘lion’, 3: ‘horse’}

获取keys和values

list(animals.keys())

[1,2,3]

list(animals.values())

[‘tiger’, ‘lion’, ‘horse’]

for valuein animals.values():

print(value)

>

tiger

lion

horse

赋值与浅拷贝与深拷贝

col = [‘red’,’blue’,’green’]

col_new =col

col_new.append(‘black’)

col_new

[‘red’, ‘blue’, ‘green’, ‘black’]

col

[‘red’, ‘blue’, ‘green’, ‘black’] #这个是赋值

id_row =[id(ele) for ele in col]

id_new =[id(ele) for ele in col_new]

我们可以看到上面两个是一样的

下面说一下深拷贝,浅拷感兴趣可以看一下

importcopy

col =[‘red’,’blue’,’green’]

col_new =copy.deepcopy(col)

col_new.append(‘black’)

col_new

[‘red’, ‘blue’, ‘green’, ‘black’]

col

[‘red’, ‘blue’, ‘green’]

大家要温故知新呀,Python学习是要自己上手实践的,多把代码敲一下。