序列的通用操作

python中最基本的数据结构就是序列,python中包含6种内建序列,即列表,元组,字符串,Unicode字符串,buffer对象和xrange对象

下列操作对于所有python中所有的序列都适用:包括索引(index),切片(slicing),序列相加(adding),乘法(multiplying),成员资格,长度,最小值和最大值

一.索引

索引用来对单个元素进行访问,既可以对变量的引用操作,也可以直接操作序列,还可以操作函数的返回序列

1.对变量的引用操作:

>>> greeting=‘hello‘
>>> print(greeting[0])
h
>>> print(greeting[1])
e

2.直接操作序列:

>>> ‘hello‘[0]
‘h‘

>>> ‘hello‘[2]
‘l‘

3.操作函数的返回序列

>>> a=input()[0]
hello
>>> a
‘h‘

关于索引方向,python中的序列既可以从左向右索引,也可以从右向左索引,当从右向左索引时,最后一个元素的编号为-1

>>> greeting="hello"
>>> greeting[-1]
‘o‘
>>> greeting[-2]
‘l‘

二.切片

索引用来对单个元素进行访问,使用切片可以对一定范围的元素进行访问,切片通过冒号相隔的两个索引实现

>>> number=[1,2,3,4,5,6,7]
>>> number[1:3]
[2, 3]

>>> number[-3:-1]
[5, 6]

可见,切片操作既支持正数索引也支持负数索引,切片操作的实现需要提供两个索引 作为边界,第一个索引的元素包含在切片内,第二个索引的元素不包含在切片内,像数学里的a≥x<b

当用负数索引时,如果想输出到最后一个元素,可以将第二个索引设置为空,这也适用于正数索引

>>> number=[1,2,3,4,5,6,7]
>>> number[-3:]
[5, 6, 7]

若要取得整个序列,将两个索引都设置为空:

>>> number=[1,2,3,4,5,6,7]
>>> number[:]
[1,2,3,4,5, 6, 7]

还可以设置第三个索引值,为步长,步长设置大于1的数时,会得到一个跳过某些元素的序列。步长不能为0,会报错

>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[0:10:2]
[1, 3, 5, 7, 9]

步长也可以为负数,步长为负数时,从序列的尾部开始向左提取元素,直到第一个元素,也就是和正数步长输出的顺序相反

>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[9:0:-1]
[10, 9, 8, 7, 6, 5, 4, 3,2]

可见,使用负数步长时,设置第二个索引为0,取不到序列中的第一个元素,只有设置第二个索引为空才行

>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[9::-1]
[10, 9, 8, 7, 6, 5, 4, 3,2,1]

三.序列相加

使用‘+’可以进行序列的连接操作

>>> [1,2,3]+[2,3,4]
[1, 2, 3, 2, 3, 4]

>>> ‘hello‘+‘world‘
‘helloworld‘

但是不能将列表和字符串相加

>>> [1,2,3]+‘hello‘
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    [1,2,3]+‘hello‘
TypeError: can only concatenate list (not "str") to list

只有类型相同的序列才能通过加号进行序列连接操作,不同类型序列不能通过加号进行序列连接操作。

四.乘法

用一个数字乘以一个序列会生成新的序列,在新的序列中,原来的序列将被重复x次,这就是序列中的乘法

>>> ‘hello‘*5
‘hellohellohellohellohello‘
>>> [1,2]*4
[1, 2, 1, 2, 1, 2, 1, 2]

可以用来创建占用10个或更多元素空间的空列表,如[]*10

还可以用来初始化一个长度为x的序列,这时候就需要让每个编码位置上都为空值,此时需要一个值代表空值,即里面没有任何元素,可以使用None

如:

>>>a=[None]*5

[None,None,None,None,None]

五.成员资格

为了检查一个值是否在序列中,python为我们提供了in运算符

>>> greeting=‘hello world‘
>>> name=[‘xiao‘,‘ming‘,‘tony‘]
>>> number=[1,2,3,4,5]
>>> 1 in name
False
>>> ‘xiao‘ in name
True
>>> ‘h‘ in greeting
True
>>> ‘  ‘ in greeting
True
>>> 1 in greeting
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    1 in greeting
TypeError: ‘in <string>‘ requires string as left operand, not int

可见,数字类型不能在字符串类型中通过in进行成员资格检测,而字符串类型可以在数字列表中通过in进行成员资格检测

六.长度,最大值和最小值

>>> number=[1,2,3,4,5]
>>> len(number)
5
>>> max(number)
5
>>> min(number)
1
>>> max(1,2,3,4,5)
5
>>> min(1,2,3,4,5)
1

原文地址:https://www.cnblogs.com/cjluchen/p/8809821.html

时间: 2024-11-05 14:52:10

序列的通用操作的相关文章

1.6 序列的通用操作

下面几个小节分别会介绍到的list.tuple.str等都属于序列. 先介绍序列通用操作,序列的通用操作部分对list.tuple.str都适用,此处以list为例进行演示. 在讲序列的通用操作之前,先讲一下列表的构造.列表的构造方法: (1)直接把列表的元素直接放在[]中, (2)使用全局list()函数构造列表.list会把传进来的序列值进行拆分.其他可迭代对象也能生成列表. #先生成一个list类型的对象 1 >>> l = ['张三','李四','王五'] 2 >>&

Python中6种内建序列之通用操作

数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个元素索引是0,第二个则是1,一次类推. Python包含6中内建的序列,即列表.元组.字符串.Unicode字符串.buffer对象和xrange对象. 通用序列操作:索引.分片.序列相加.乘法.成员资格.长度.最小值和最大值 1. 索引 序列

字符串,列表,元组,字典,集合,序列通用操作

序列的通用操作 Python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和xrang对象. 所有序列类型都可以进行某些特定的操作.这些操作包括但不限于:索引(indexing),分片(slicing),加(adding),乘(multiplying),以及成员资格(in,not in),除此之外,Python还有计算序列长度,找出最大元素和最小元素的内建函数以及迭代(iteration). 原文地址:https://www.cnblogs.com/romacle

《python基础教程》笔记之 序列通用操作

索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可以直接使用索引.如果一个函数调用返回一个序列,那么可以直接对返回结果进行索引操作.如 #根据给定的年月日以数字形式打印出日期 months = ['January', 'February', 'march', 'May', 'June', 'August', 'September', 'Octobe

使用Linq中的Distinct方法对序列进行去重操作

使用Linq提供的扩展方法Distinct可以去除序列中的重复元素. 该方法具有以下两种重载形式: (1)public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source) (重载1) 通过使用默认的相等比较器对值进行比较并返回序列中的非重复元素. (2)publicstatic IQueryable<TSource> Distinct<TSour

IO包中的其他类 打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组

打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 一.打印流: 该流提供了打印方法,可以将各种数据类型的数据都原样打印. 字节打印流PrintStream构造函数可以接收的参数类型1.File对象 File2.字符串路径 String3.字节输出流 OutputStream 字符打印流PrintWriter(更常用)1.File对象 File2.字符串路径 String3.字节输出流 OutputStream4.字符输出流 Writer publ

Xml通用操作类

using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; namespace CommonUtil { /// <summary> /// Xml通用操作类 /// </summary> public class XmlHelper { public XmlHelper() { } /// <summary> /// 创建XM

Redis学习--key的通用操作、移库操作、订阅与事务、持久化和总结

key的通用操作 keys pattern: pattern *表示任意一个多个字符 ?表示任意一个字符 del key1 key2 删除多个key exists keyname 查看是否存在 rename key newkey 重命名 expire key 设置过期时间 ttl key 查看剩余时间 type key 查看key的类型 Redis-desktop-manager 安装 默认16个database,默认使用0database 移库 select 1 使用db1 move key

Python(5)--数据结构-序列-通用操作

数据结构: 数据结构是以某种方式(如通过编号)组合起来的数据元素(如数.字符乃至其他数据结构)集合.在Python中,最基本的数据结构为序列(sequence). 序列: 序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推.在有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列开头的偏移量.同时可回绕到序列末尾,用负索引表示序列末尾元素的位置. 通用序列操作: 索引: 序列中的所有元素都有编号,也就是索引,从0递增,使用索引来访问元