首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础知识:序列

再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。

下午的时候,下点儿雨。晚上出去跑步,凉快很多。通过跑步这件事,让我领悟一个道理,不管你多努力,总有人比你还努力。微信步数,从来没进过前三。大周末的,都不好好在家呆着吹空调,出去瞎晃悠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]。

先写到这,多敲代码。编程入门,都是先抄别人的代码,多敲,多总结,慢慢就会自己写一些简单的程序、简单的叠加,就是一个复杂的工程。

没有美工

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180805G1G2GE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券