python学习笔记——序列

目录:

一;概念

二:访问单个元素

三;切片

四;序列的赋值

五;序列的加法和乘法

六;查找序列中是否存在某个或某些元素

七;与序列有关的三个函数

……

一;概念:

为满足程序中复杂的数据表示,python支持组合数据类型,可以将一批数据作为一个整体进行数据操作,这就是数据容器的概念。

容器中可包含多个数据(元素),容器中的数据(元素)有先后次序,每个元素通过先用其下标(索引)来访问。序列的下标从0开始,后面下标依次为1,2,3…。

序列是其中一大类数据容器的统称,不是具体的数据类型。

常见的序列类型:列表(list),字符串(string),元祖(tuple)。

 

上图是列表、字符串、元祖都通用的操作。

……

……

二;访问单个元素

a=’hello’ #初始化一个字符串

print(a[0])

这个程序将会输出:

h

其实,除了这一种下标的表达方式以外,还有一种下标表示方法,如果序列中有n个元素,那么倒数第一个元素是a[-1],倒数第二个元素是a[-2],最后一个元素是a[-n].这种表示方法咋一看有点反人类,完全没必要嘛,但其实这种表达方法很适合用来对序列进行切片操作,同时,也可以很轻松的找到未知长度序列的最后面的元素。

……

……

三;切片

切片实际上就是访问序列中的多个元素。(不再是单个元素)

比如这样的程序:

a=[1,2,3,4,5,6]

print(a[1:4])

会输出:

[2, 3, 4]

其实就是从下标1开始切一刀,然后在下标4的位置也切一刀,然后把中间的元素输出。(不包括下标4)

其实上面的程序还能写成另外一种形式:

a=[1,2,3,4,5,6]

print(a[1:-2])

从下标1开始切一刀,然后在下标-2的位置也切一刀,输出和上面是一样的。

切片还可以设置步长,比如a[1:5:2],其实就是输出下标1、下标3的值。

……

……

四;序列的赋值

和c语言中的数组不同。

序列可以进行这样的一个操作:

a=[1,2,3,4,5,6]

b=a #将列表a赋值给了b

b[1]=555

print(a)

print(b)

然而,查看一下输出结果:

[1, 555, 3, 4, 5, 6]

[1, 555, 3, 4, 5, 6]

b[1]改变,a[1]也同时发生了改变,其实a和b根本就是同一个东西,这根本就不是赋值,相当于是给a取了一个别名叫作b,虽然名字有差距,但都是同一个东西。

所以,想要进行赋值的话,可以用切片进行处理。

a=[1,2,3,4,5,6]

b=a[:] #把a全部切给b

b[1]=555

print(a)

print(b)

然后看一下输出结果:

[1, 2, 3, 4, 5, 6]

[1, 555, 3, 4, 5, 6]

ok,赋值成功了,a和b现在已经是完全不同的两个东西了。

……

……

五;序列的加法和乘法

实际上和上一篇学习笔记中讲的一样。

x=[1,2,3]

y=[4,5,6]

z=x+y

那么z=[1,2,3,4,5,6]

如果z=3*x

那么z=[1,2,3,1,2,3,1,2,3]

上面演示的是列表的加法和乘法,而序列和元祖也是一样的。

……

……

六;查找序列中是否存在某个或某些元素

用in来进行操作。

比如这样一段程序:

a=[1,2,3,4,5,6]

print(3 in a)

输出结果得:

True         #输出一个bool值

输出为真,说明序列a中有3这个元素。

不过列表和字符串有些不同。

a=[1,2,3,4,5,6]

print([2,3] in a)

会输出:

False

但如果程序是这样:

a=[1,[2,3],4,5,6]

print([2,3] in a)

就会输出:

True

这说明,列表中只能确定单个元素是否存在。

但字符串不一样,比如这样一段程序:

a='hello'

print('he' in a)

会输出:

True

说明字符串中可以确定多个元素是否存在,和列表还是有区别的。

至于元祖……元祖和列表一样。

……

……

七;与序列有关的三个函数

len()函数,可以输出序列的长度。

max()函数,可以输出序列的最大值

min()函数,可以输出序列的最小值

比如这样一段代码:

a='ajio1oiw1'

print(min(a))

print(max(a))

print(len(a))

会输出:

1         #最小值是1

w         #最大值是w

9         #序列长度是9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值