今天我们来学习一下python中的几个基本数据结构。数据结构是数据存储的结构。对数据结构的操作主要有创建、更新、删除、查询等,也即我们常说的增删改查,或者crud。今天主要介绍python编程中的列表、字典和元组三个数据结构。
列表
列表简介
列表是有一系列特定顺序排列的元素组成。其中,元素可以是数字,是文本,甚至是其他的数据结构。可以说列表的的组成非常灵活多样。
如何创建一个列表
在python语言中,用方括号[ ]来表示列表,并用逗号分隔其中的元素。创建列表可以从空列表开始创建,也可以把一些元素直接包含在列表中。我们创建一个中国城市的列表,并打印出来。
citis=['北京','上海','guangzhou']
print(citis)
可以看到结果如下:
['北京', '上海', 'guangzhou']
如何查看列表里的数据
1.查询特定元素
列表是一个有顺序的数据结构,访问列表里的元素,需要将该元素的索引或者位置告诉代码。现在让我们看看cities这个列表的第2个元素是哪个城市
citis=['北京','上海','guangzhou']
print(citis[1])
答案是上海,由于列表的索引是从0开始,而不是从1开始,所以查询第2个元素,则索引应该为1。
- 查询所有元素
如果我们要查看列表里的每一个元素,则可以采用循环的方式来遍历整个列表。
for city in citis:
print(city)
可以看到结果被依次打印出来、
北京
上海
guangzhou
- 访问列表中的一部分数据
可以用切片的方式来访问列表中的一部分数据。所谓切片是指从在列表中从某个位置到另外一个位置取出其数据。例如我们想看看列表第2到第4这三个元素的数据。
views=['天安门','上海滩','小蛮腰','莲花山','泰山','九寨沟','青海湖']
print(views[1:4])
['上海滩', '小蛮腰', '莲花山']
值得注意的是,切片表达式的最后一个索引值并不输出数据。如果我们要看一下最后三个元素。则
print(views[-3:])
['泰山', '九寨沟', '青海湖']
如何修改列表里的数据
由于列表是动态的,可以对列表进行增删改查,现在我们想把guangzhou改成中文的描述方式。我们知道guangzhou在第三个位置,所以
citis[2]='广州'
print(citis)
从下面可以看到我们的修改生效了。
['北京', '上海', '广州']
如何向列表里添加数据
现在我们想把”深圳“加入到列表里,这里有两个方法。我们可以直接把元素放在列表的最尾部,或者说想要放在特定的位置。
- 把元素放在列表最尾部,我们使用append方法。代码如下:
citis.append('深圳')
print(citis)
可以看到深圳被放在了最后。
['北京', '上海', '广州', '深圳']
- 指定放置位置,我们用insert方法,比如我们把天津放在列表的第四个位置。代码如下
citis.insert(3,'天津')
print(citis)
['北京', '上海', '广州', '天津', '深圳']
如何删除列表里的数据
有些数据当不再需要的时候,就可以从列表中删除。删除的方法有很多,可以应对不同的删除方式。
- 当我们知道具体的元素时,可以用通过remove方法来实现删除。
citis=['北京', '上海', '广州', '天津', '深圳', '重庆', '大连', '青岛']
citis.remove('天津')
print(citis)
从结果可以看到,“天津”被删除了
['北京', '上海', '广州', '深圳', '重庆', '大连', '青岛']
- 如果知道要删除数据的索引,可以用del方法来删除元素。下面我们删除第六个城市“大连”,其索引为5
del citis[5]
print(citis)
['北京', '上海', '广州', '深圳', '重庆', '青岛']
或者采用pop方法,类似于出栈的方式。现在我们弹出剩余城市的第5个城市“重庆”,其索引为4
citis.pop(4)
print(citis)
['北京', '上海', '广州', '深圳', '青岛']
字典
字典简介
在python中,字典是一系列的键-值对,即key-value对。每个key与一个value相关联。其中value可以是任意的数据结构,包括数字、列表甚至是字典。
如何创建一个字典
字典用花括号{}来表示,每一个key-value用冒号联系,而不同的key-value对则用逗号分隔。现在我们创建城市名胜的字典。
city_view={'北京':'故宫','上海':'外滩','广州':'珠江','青岛':'崂山','西宁':'青海湖','西安':'兵马俑'}
print(city_view)
{'西安': '兵马俑', '北京': '故宫', '西宁': '青海湖', '上海': '外滩', '青岛': '崂山', '广州': '珠江'}
从打印的结果可以看到,字典中键值对的存储是无序的。
如何访问字典中的数据
由于字典的数据是键值对的方式存储,要想访问字典里的数据,只需要找到键就可以了。下面我们要看看北京的名胜是什么,则直接通过北京这个键来关联。
print(city_view['北京'])
故宫
如果我们要访问字典的所有键值对,那么则需要遍历。
1.遍历所有的键值对
我们用for循环来遍历所有的键值对。
for k, v in city_view.items():
print("\n Key: "+k)
print("Value: "+v)
- 遍历所有的键或者值
当只查看键时,可以用方法keys()。 当只查看键时,可以用方法values()。
for k in city_view.keys():
print("\n Key: "+k)
for v in city_view.values():
print("Value: " + v)
如何修改字典中的数据
要修改字典中的值,可通过键来关联,并用新的值来关联。把北京的名胜改成长城
city_view['北京']='长城'
print(city_view)
{'西宁': '青海湖', '西安': '兵马俑', '北京': '长城', '青岛': '崂山', '广州': '珠江', '上海': '外滩'}
如何向字典中添加新的数据
字典是一种动态结构,可以随时添加key-value对。要添加键值对,直接对字典的键值对进行赋值即可。如,现在增加深圳-莲花山这个键值对。
city_view['深圳']='莲花山'
print(city_view)
{'深圳': '莲花山', '北京': '长城', '西宁': '青海湖', '上海': '外滩', '广州': '珠江', '青岛': '崂山', '西安': '兵马俑'}
python不关心键值对的顺序,只关心键值之间的关系。
如何删除字典中的数据
当不需要字典中的一些信息,可以使用del将相应的键值对删除,只需要指定字典名和要删除的键。现在我们删除 ‘青岛’: '崂山’这个数据。
del city_view['青岛']
print(city_view)
{'深圳': '莲花山', '上海': '外滩', '北京': '长城', '西安': '兵马俑', '广州': '珠江', '西宁': '青海湖'}
元组
列表和字典是动态的,可以存储变化的数据。当有些数据不能修改时,我们可以用元组来存储。
元组简介
不可变的列表称为元组。用圆括号来标识。定义元组后,可以像访问列表一样来访问。
现在假设表达一个固定矩形的信息,即长和宽。
area=(10,15)
print(area[1])
创建和访问元组和列表类似,但是不可以对元组的数值修改。不过重新对元组变量进行赋值。
area[1]=25
这是不允许的。而
area=(10,15)
print(area[1])
area=(100,105)
是允许的。
总结
今天我们介绍了python常用的三种数据结构:列表,字典和元组。其中列表和字典是动态的,可以对存储的数据进行增删改查,而元组是不可变的,不可以进行修改。对这三种数据结构的掌握需要在具体业务中多加练习。