Python-学习之旅-4-数据结构
前言
数据结构基本上就是——它们是可以处理一些 数据 的 结构 。或者说,它们是用来存储一组相关数据的。
在 Python 中有三种内建的数据结构——列表、元组和字典。
列表 (List ):
1.说列表,要从序列说起,Python语言里最基本的数据结构就是序列。序列中的每个元素都有一个索引,第一个元素的索引是0,第二个是1…,依次类推 。
2.列表可以说是Python中最常用的数据类型,列表的中的元素类型可以是不同的 ;也就是说我的列表里可以都是字符串,都是数字,或者既有字符串也有数字 。
3.创建一个列表,只要把逗号 ,
分隔的不同的数据项使用方括号括 []
起来即可,这样Python就知道你是在指明一个列表。
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是 可变的 数据类型,即这种类型是可以 被 改变 的。
可以使用 append()
方法来添加列表项 ,而 del
是用来删除列表元素的方法,也就是delete的简写
# -*- coding: utf-8 -*-
list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
输出:
第三个元素为 : 1997
更新后的第三个元素为 : 2001
list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
输出:
原始列表 : ['Google', 'Runoob', 1997, 2000]
删除第三个元素 : ['Google', 'Runoob', 2000]
使用 append() 在尾部添加元素,使用 insert() 在列表中插入元素,使用 pop() 删除尾部的元素。
lists = ['a','b','c']
lists.append('d')
print lists
print len(lists)
lists.insert(0,'mm')
lists.pop()
print lists
运行结果:
['a', 'b', 'c', 'd']
4
['mm', 'a', 'b', 'c']
-
列表是使用对象和类的一个例子。一个类(类型)
int
的对象(实例)i
。 -
我们可以用
len([1,2,3])
来获取一个列表的长度,还有我们能用+
加号把两个列表组合起来,就像[1,2,3]+[4,5,6]会变成[1,2,3,4,5,6]
-
列表对
+
和*
的操作符与字符串相似。+
号用于组合列表,*
号用于重复列表。
元组:
-
Python的元组与上节课讲的列表很相似,但有个不同点,就是元组中的元素 不能修改 ,还有列表我们使用的是方括号
[]
吗,而在元组中我们要使用小括号()
不需要括号也可以 . -
元组创建十分容易,在括号中添加元素,然后使用逗号
,
将元素隔开即可。就像这样tup1 = ('apple', 'iphone', 2016, 2017)
,tup2 = (55, 66, 77, 88, 99)
, 还可以这样tup3 = 'x', 'y', 'z'
。 -
当我们想要创建一个空元组时,可以这样写
tup = ()
, 还有一点要注意 , 当元组中只有 一个 元素时,我们需要在这个元素后面添加一个逗号,例如:tup = (123,)
-
元组中的元素值是不可以被修改的,因此如果像列表一样
tup[0]=999
是非法的操作 。但我们可以对元组进行连接组合 -
#!encoding: utf-8 tup1 = (1,2,3); tup2 = ('apple', 'orange'); tup3 = tup1 + tup2; print (tup3)
再来看元组的del 。元组是不允许删除其中元素值的,但我们能通过del方法来删 除整个元组,就像这样 :
tup = ('Google', 'Runoob', 1997, 2000) print (tup) del tup; print ("删除后的元组 tup : ") print (tup) 以上实例元组被删除后,输出变量会有异常信息,输出如下所示: Traceback (most recent call last): File "test.py", line 8, in <module> print (tup) NameError: name 'tup' is not defined
-
同样的元组也能用
len()
获取长度 ,我们还能这样写(100,)*4
,它会输出(100,100,100,100)
,列表也可以这样写 - 再来看一个小知识点,同样是元组和列表都适用的哦 。我们可以这样
for x in (1, 2, 3): print x
,来遍历一个元组的元素
字典Dictionary :
-
这里的字典也是另一种数据类型,它能够存储任何类型的对象。 字典写在大括号里
{}
,然后字典中的每个键值对key: value
之间用逗号,
,来分割 ,就像下面这样:dict = {key1 : value1, key2 : value2 }
-
我们举个例子,在生活中使用时字典,比如我们查找apple,翻到对应页码会有apple的解释–苹果 ,那么这个apple就是key,我们叫做键,苹果就是对应的value,叫做值 .
-
就刚才那个例子,写成代码是这样的:
dict = { 'apple': '苹果' }
要记住:字典中的 键 必须是 唯一 的, 值 可以 不唯一 ! 值可以采用 任意数据类型 ,但键的类型必须是像 字符串 ,数字或元组这样不可变的,我创建了一个字典,用Name、Sex、Hobby做为键值,并写了对应的值
#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age']) 以上实例输出结果: dict['Name']: Runoob dict['Age']: 7
-
我们再来看看字典的元素如何修改和删除 。还以刚才的字典为例,
假如我们想修改姓名,也就是Name这个key对应的值,这样写
dict['Name'] = 'Lisa'
简单吧。添加新的键值时,比如我们要添加一个学校的键值对,这样写:
dict['School'] = 'CXY School'
。那么如何删除字典元素呢 ,还记得列表删除元素用什么吗? 假如我们不想要key是Age的这个键值对了,我们可以
del dict['Age]
这样这个字典里Age就不存在了 。我们还可以用dict.clear()
来清除整个字典 。同样的,可以通过del dict删除这个字典,不过删除后再使用这个字典就会报错,以为这个dict已经从内存中删除了 。而dict.clear()后再使用dict则不会报错,因为这个字典依旧存在,只不过里面是空的
-
关于字典的使用,有两点必须要记住 。
1、同一个键不可以出现两次。如果一个字典中有相同的键,那么最后一个键的值将会覆盖先前的值,
比如这样:
dict = {'Name': 'Jack', 'Height': 175, 'Name': 'Lisa'}
这时我们如果通过dict[‘Name’]获取值的话,将会获取’Lisa’,而’Jack’因为后面出现了相同的key被覆盖了
2、键的类型必须是不可变的,比如数字或字符串等,像可变类型的列表就不行
-
字典还有很多用法,比如我们可以通过
dict.keys()
返回一个字典中所有的键 。对应的可以通过dict.values()
返回一个字典中所有的值
欢迎关注我的公众号:「韧桂」
韧桂 2018-07-05