再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。
下午的时候,下点儿雨。晚上出去跑步,凉快很多。通过跑步这件事,让我领悟一个道理,不管你多努力,总有人比你还努力。微信步数,从来没进过前三。大周末的,都不好好在家呆着吹空调,出去瞎晃悠what!
1.数据结构
什么是数据结构?数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。集合都知道吧,高中的知识,集合。
Python中,最基本的数据结构是序列(sequence)。序列中的每一个元素都会被分配一个序号——即元素的位置,也叫索引。就跟查字典差不多,哪个字在第几页。第一个索引是0,是0,是0,。第二个是1,以此类推。代码里面,数数,基本都是从0开始。一定要注意。
2.序列概念
Python包含6种内建序列,列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。这次主要讲列表和元祖。
列表和元组的区别在于,列表可以修改,元组不可以。具体的使用场景,以后慢慢就晓得了。
# 列表 存储某人的信息
info = ['Chris','23','男']
info是变量名,上一篇讲过变量。‘=’右边就是一个列表,中括号括起来,里面的元素用逗号隔开。第1个元素(索引为0),为姓名,第2个元素为年龄,第3个元素为性别。
当然,列表里面也可放列表。
# 列表 存储某些人的信息
info = [['Chris','23','男'],['Jinx','14','女']]
info是一个列表,第1个元素,也是一个列表。如果逻辑能力够强,可以嵌套的更复杂。但过于复杂的结构,有时也不是一件好事。
3.序列通用操作
所有的序列类型,都可以进行某些特定的操作,包括:索引(index)、分片(slicing)、加(add)、乘(multiplying)以及检查某个元素是否属于序列的成员。还有可以计算序列长度、找出最大元素和最小元素的内建函数。
【索引】
序列中的左右元素都有编号,从0开始。可以通过编号访问某个元素。
# 序号为 0 的元素 h
s ='hello world'
print(s[])
变量s是一个字符串。前面也讲了,字符串也是序列的一种。访问序列中的元素,变量名后面加中括号,访问第几个元素,写元素相应的编号。变量名[0],第一个元素;变量名[1],第二个元素,以此类推。
序列也可以从后往前计数。
# 序号为 -1 的元素 d
s ='hello world'
print(s[-1])
【分片】
索引是访问单个元素,分片操作是访问某个范围内的元素。通过冒号隔开两个索引来实现,即一个开始索引,一个结束索引。
相当于高中学的区间,左边包含,右边不包含。加入我们要访问最后4个元素。
# 访问最后4个元素
num = [,1,2,3,4,5,6,7,8,9]
print(num[6:10])
这样有一个问题,num是一个包含10个元素的序列,最大的序号是9。如果取最后4个元素,num[6:9],由于右边是不包含的,只能取到[6, 7, 8],所以为了取到最后一个元素,右边的索引,必须比序列的长度要大。在知道序列长度的情况下,可以手动加1。如果不知道序列的长度,就要先计算序列的长度,再加1。虽然计算长度的时间很短,但是短,也是有时间成本的。这就需要用更优雅的方式。
# 访问最后4个元素
num = [,1,2,3,4,5,6,7,8,9]
print(num[6:])
分片的操作中,两个索引,其中一个或者两个可以为空,不填任何数值。第一个为空,表示从头开始。第二个为空,表示取到结尾。都为空,表示取整个序列。
# 访问前4个元素
num = [,1,2,3,4,5,6,7,8,9]
print(num[:4])
也可以从右往左取。
# 访问最后4个元素
num = [,1,2,3,4,5,6,7,8,9]
print(num[-4:])
更大的步长。步长就是隔几个元素取一个。默认的步长是1。
# 隔一个元素,取一个
num = [,1,2,3,4,5,6,7,8,9]
print(num[:10:2])
这样取出来的元素就是,[0, 2, 4, 6, 8]。步长不能为0。分片和步长这一点,需要缕明白。对提升代码效率很有帮助。
【序列相加】
使用加法运算符,可以将两个序列连接。
# 两个序列相加
a = [1,2,3]
b = [4,5,6]
print(a + b)
最后得到的结果就是[1,2,3,4,5,6]。
之后两个相同的序列才能相加,列表+列表,字符串+字符串。
不同的列表相加,会报错。
# 两个不同的序列相加
c = [1,2,3]
d ='hello'
print(c + d)
【乘法】
序列和一个数字x想乘。会得到一个新的序列,原来的序列被重复x次。
# 乘法
e = [12]
print(e *4)
得到的结果就是[12,12,12,12]。
先写到这,多敲代码。编程入门,都是先抄别人的代码,多敲,多总结,慢慢就会自己写一些简单的程序、简单的叠加,就是一个复杂的工程。
没有美工
领取专属 10元无门槛券
私享最新 技术干货