微信公众号: 点击蓝色字体小白图像与视觉进行关注
关于技术、关注
yysilence00
。有问题或建议,请公众号留言
下面主要讲数据结构
- 整理知识,学习笔记
- 发布日记,杂文,所见所想
. 数据结构 {#data-structures}
Python 中有四种内置的数据结构——列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。
列表有关对象与类的快速介绍元组字典序列 {#sequence}集合引用有关字符串的更多内容 {#more-strings}总结
. 列表
列表
是一种用于保存一系列有序项目的集合,也就是说,你可以利用列表保存一串项目的序列。想象起来也不难,你可以想象你有一张购物清单,上面列出了需要购买的商品,除开在购物清单上你可能为每件物品都单独列一行,在 Python 中你需要在它们之间多加上一个逗号。
项目的列表应该用方括号括起来,这样 Python 才能理解到你正在指定一张列表。一旦你创建了一张列表,你可以添加、移除或搜索列表中的项目。既然我们可以添加或删除项目,我们会说列表是一种可变的(Mutable)数据类型,意即,这种类型是可以被改变的。
. 有关对象与类的快速介绍
虽然到目前为止我经常推迟有关对象(Object)与类(Class)的讨论,但现在对它们进行稍许解释能够有助于你更好地理解列表。
列表是使用对象与类的实例。当我们启用一个变量 i
并将整数 5
赋值给它时,你可以认为这是在创建一个 int
类(即类型)之下的对象(即实例) i
。实际上,你可以阅读 help(int)
来了解更多内容。
一个类也可以带有方法(Method),也就是说对这个类定义仅对于它启用某个函数。只有当你拥有一个属于该类的对象时,你才能使用这些功能。举个例子,Python 为 list
类提供了一种 append
方法,能够允许你向列表末尾添加一个项目。例如 mylist.append('an item')
将会向列表 mylist
添加一串字符串。在这里要注意到我们通过使用点号的方法来访问对象。
一个类同样也可以具有字段(Field),它是只为该类定义且只为该类所用的变量。只有当你拥有一个属于该类的对象时,你才能够使用这些变量或名称。字段同样可以通过点号来访问,例如 mylist.field
。
案例(保存为 ds_using_list.py
):
1"""
2列表list
3
4x[index], x[index:index], x(arguments...), x.attribute :下标、切片、调用、属性引用
5
6(expressions...), [expressions...], {key: value...}, {expressions...} :表示绑定或元组、表示列表、表示字典、表示集合
7"""
8# This my shopping list
9shoplist = ['apple', 'mango', 'carrot', 'banana']
10
11print('I have', len(shoplist), 'items to purchase.')
12
13print('Thesre items are:', end=' ')
14for item in shoplist:
15 print(item, end=' ')
16
17print('\n\nI also have to buy rice.\n')
18shoplist.append('rice')
19# shoplist.append(['fish', 'egg']) 你可以向列表中添加任何类型的 对象,包括数字,甚至是其它列表。但是后面的sort()不支持list与str两种实例
20print('my shopping list is now', shoplist)
21
22
23print('i will sort my list now')
24shoplist.sort()
25print('sorted shopping list is', shoplist)
26
27print('The first item I will buy is', shoplist[0])
28olditem = shoplist[0]
29del shoplist[0]
30print('I bought the', olditem)
31print('My shopping list is now', shoplist)
输出:
1I have 4 items to purchase.
2Thesre items are: apple mango carrot banana
3
4I also have to buy rice.
5
6my shopping list is now ['apple', 'mango', 'carrot', 'banana', 'rice']
7i will sort my list now
8sorted shopping list is ['apple', 'banana', 'carrot', 'mango', 'rice']
9The first item I will buy is apple
10I bought the apple
11My shopping list is now ['banana', 'carrot', 'mango', 'rice']
变量 shoplist
是一张为即将前往市场的某人准备的购物清单。在 shoplist
中,我们只存储了一些字符串,它们是我们需要购买的物品的名称,但是你可以向列表中添加任何类型的对象,包括数字,甚至是其它列表。
我们还使用 for...in
循环来遍历列表中的每一个项目。学习到现在,你必须有一种列表也是一个序列的意识。
在这里要注意在调用 print
函数时我们使用 end
参数,这样就能通过一个空格来结束输出工作,而不是通常的换行。
接下来,如我们讨论过的那般,我们通过列表对象中的 append
方法向列表中添加一个对象。然后,我们将列表简单地传递给 print
函数,整洁且完整地打印出列表内容,以此来检查项目是否被切实地添加进列表之中。
接着,我们列表的 sort
方法对列表进行排序。在这里要着重理解到这一方法影响到的是列表本身,而不会返回一个修改过的列表——这与修改字符串的方式并不相同。同时,这也是我们所说的,列表是可变的(Mutable)而字符串是不可变的(Immutable)。
随后,当我们当我们在市场上买回某件商品时,我们需要从列表中移除它。我们通过使用 del
语句来实现这一需求。在这里,我们将给出我们希望从列表中移除的商品,del
语句则会为我们从列表中移除对应的项目。我们希望移除列表中的第一个商品,因此我们使用 del shoplist[0]
(要记住 Python 从 0 开始计数)。
如