Python通用序列操作

注:

  Python支持容器的数据结构概念

  容器基本上就是可包含其他的对象,两种主要的容器就是序列和映射

  序列中每隔元素都有编号

  映射中每隔元素都有键

 



通用序列操作

  索引、切片、相加、相乘、、成员资格都适用于所有的序列



索引:

  序列中是所有元素都有编码,从0开始递增,可已使用[索引]来访问各个元素

  字符串就是由字符组成,索引0指向第一个元素

name = "shuai"
print(name[0])      # s
print(name[3])      # a

  使用负数索引时,从右往左数,最后一个元素的位置是-1

name = "shuai"
print(name[-1])     # i
print(name[-3])     # u

  对于字面量(所有序列类型均可),可以直接进行索引操作,无需现将其赋值个变量

print("shuai"[3])   # a
print(["a", "b", 2, 5][2] )     # 2

  函数返回一个序列,可以直接进行索引操作

x = input("name:")[3]       # shuai
print(x)    # a

  练习:

months = [
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December",
]

endings = ["st", "nd", "rd"] + 17*["th"] + ["st", "nd", "rd"] + 7*["th"] + ["st"]

year = input("year:")
month = input("month:")
day = input("day:")

month_number = int(month)
day_number = int(day)

month_name = months[month_number-1]
ordinal = day + endings[day_number-1]

print(month_name + " " + ordinal + " " + "," + year)

  



切片:

  使用切片来访问特定范围内的元素,使用两个索引,用冒号分隔

tag = "<a href=‘http://www.python.org‘>Python web site</a>"
print(tag[9:30])        # http://www.python.org
print(tag[32:-4])       # Python web site

  第一个索引是包含在切片内的,但是第二个索引是不包的,实际上是该索引的前一个元素:前包后不包

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[3:6])     # [4, 5, 6]
print(numbers[0:1])     # [1]

  

  切片简写:

    访问最后三个元素,可以明确的指出

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[6:9])     # [7, 8, 9]
print(numbers[-3:-1])       # [7, 8]

    上面发现使用负数索引时不能包含最后一个元素,按照索引前包后不包是规则,是不是应该写0?

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[-3:0])     # []

    实际上,当第一个索引指定的元素位于第二个索引指定的元素后面时(上面 索引-4的值是7,而0索引的值是 1),结果就是空序列

    简写来了!

    如果切片结束在序列末尾,那么可以不写第二个索引

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[-3:])     # [7, 8, 9]

    同理,如果切片开始于序列的开头,那么可以省略第一个索引

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[:3])     # [1, 2, 3]

    要赋值整个序列,可以将两个索引都省略

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[:])     # [1, 2, 3, 4, 5, 6, 7, 8, 9]

    练习:

url = input("Plese enter the URL:")
domain = url[11:-4]
print("Domain name:" + domain)

# Plese enter the URL:http://www.python.org
# Domain name:python


步长:

  切片时,显示或者隐式的指定起点和终点,通常会省略一个参数:步长

  普通的切片中,步长是1,会从第一个元素移动到下个元素,单位就是1,可以看到加了步长参数1时,和步写没有区别

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[1:6:1])   # [2, 3, 4, 5, 6]
print(numbers[1:6])   # [2, 3, 4, 5, 6]

  当步长改为2时,就会每隔一个元素取一次值

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[::3])     # [1, 4, 7]
print(numbers[1:6:2])   # [2, 3, 4, 5, 6]
print(numbers[1:6])   # [2, 3, 4, 5, 6]

  步长也可以为负数,即从右往左取元素,但是不能为0

  步长为负数时,第一个索引一定要大于第二个

  省略索引时,步长为正数,从左到右,步长为负数时,从右到左

numbers = [1,2,3,4,5,6,7,8,9]
print(numbers[::-2])     # [9, 7, 5, 3, 1]
print(numbers[::2])     # [1, 3, 5, 7, 9]
print(numbers[1:6:-1])   # []
print(numbers[8:2:-1])   # [9, 8, 7, 6, 5, 4]
print(numbers[::0])     # ValueError: slice step cannot be zero

  



序列相加:

  可以使用 + 来拼接序列

  不能拼接不同类型的序列

print(["a", 1, 2] + [3, 4, 5])      # [‘a‘, 1, 2, 3, 4, 5]
print("shuai" + "123")          # shuai123
print("shuai" + [1, 2, 3])      # TypeError: must be str, not list

  



乘法:

  将序列和数n相乘时,会重复这个序列n次常见一个新的序列

print("shuai" * 3)      # shuaishuaishuai
print([1, 2, 3] * 5)       # [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

  None:

    空列表是用[]来创建的,不包含任何内容

    如果要创建一个可包含10个元素的列表,但是没有任何内容,可以使用None,None表示什么都没有

l = [None] * 10
print(l)        # [None, None, None, None, None, None, None, None, None, None]


成员资格检查:

  使用in来检查指定的值是否包含在序列中,检查是够满足指定的条件,并返回相应的值:满足时返回True,反之返回False

  这样的运算符成为布尔运算符

  布尔值:True或者False

s = "shuai"
print("s" in s)     # True
print("2" in s)     # False

l = [1, 2, 3, 4, 5]
print(1 in l)       # True
print("2" in l)     # False

  



长度、最小值、最大值

  内置函数len、min、max

  len函数返回序列包含的元素个数

  min返回序列中最小的元素

  max返回序列中最大的元素

  min和max可以直接提供参数

l = [1, 3, 5, 8, 9, 6]
print(len(l))       # 6
print(min(l))       # 1
print(max(l))       # 9

print(min(1, 5, 7))     # 1
print(max(8, 4, 2))     # 8

  

原文地址:https://www.cnblogs.com/Mr-chenshuai/p/9905417.html

时间: 2024-10-08 15:40:41

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

Python基础--通用序列操作

Python 继续 Python包含6种内建的序列,各自是:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.我们将逐步进行介绍. 今天主要介绍一下通用序列操作.放之四海而皆准. 1 索引 全部程序猿都知道,索引下标从零開始.Python也是这样, 索引0指向序列中第一个元素. 可是与C++相比.Python又添加了负索引.最后1个元素的索引是-1,从右至左是-2.-3 - 字符串字面值直接能够索引: >>>'Hello'[1] e 2 分片 分片通过冒号隔开

基础知识回顾——通用序列操作

数据结构是计算机存储和组织数据的方式.Python中有三类四种内建的数据结构,分别是序列(List.Tuple).映射(Dictionary)以及集合(Set). 所有序列类型都可以进行某些特定的操作,这些操作包括:索引.分片.加.乘.迭代以及检查某个元素是否属于序列的成员(成员资格),还有计算序列长度.找出最大元素和最小元素的内建元素. 1.索引 1 >>> greeting = ("hello") 2 >>> greeting[1] 3 'e'

自兴人工智能——通用序列操作

序列是Python中最基本的数据结构,序列中的每个元素都分配一个数字,代表它在序列中的位置 序列中所有的元素都是有编号的从开始递增 字符串是由字符组成的序列: str="hello" print  str[0] >>>"h" print  str[1] >>>"e" 上面的是从左往右开始编号的,在Python中,序列也可以从右往左通过编号获取元素,最右边的元素索引值为-1,从右往左依次递减 print  str

python基础---序列操作

1.索引(indexing) 在序列中每个元素都会分配1个数字,从左至右,从数字0开始(-0和0一样,指向左起第一个元素),正整数表示左起元素位,例如 例:greeting='Hello' [0] 'H' 例:greeting='Hello' greeting[-0] 'H' 例:greeting='Hello' greeting[-1] 'o' 2.切片(slicing) 索引是对单个元素进行访问,分片是对一定范围内的元素进行访问,分片既支持正数索引,也支持负数索引.分片操作的实现需要提供2个

Python学习之通用序列类型数据详解

本文和大家分享的主要是python通用序列类型数据的相关操作,一起来看看吧,希望对大家学习python有所帮助. Python的序列,Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python的序列 Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python序列的应用 Pyt

python数据结构-序列之元组

python中包含六种内建的序列:列表:元组:字符串:unicode字符串:buffer对象:xrange对象. 一.元组:不可变序列 元组与列表一样,也是一种序列.唯一不同是元组不能修改(元组和列表在技术实现上有一些不同,但是在实际使用时,可能不会注意到.且元组没有像列表一样的方法). 1.创建元组:用逗号(,)分开,元组(大部分时候)是通过圆括号括起来的 >>> 1,2,3            //直接在python编辑器输入(1, 2, 3)>>> >&g

Python基础---序列对象

一.序列简介 数据结构是通过某种方式组织在一起的元素的集合. 容器(Container)是一种Python的数据结构,基本上是包含其他对象的任意对象.序列和映射(如字典)是两类主要的容器.集合(Set)也是容器类型. 序列是最基本的数据结构,是通过对数据元素进行编号将它们组织在一起的数据元素的集合. 成员是有序排列的,可以通过小标偏移量访问到它的一个或者几个成员,这类python类型统称为序列. Python有6中种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象.xran

Python 数据结构--序列

序列概览 Python 中有6种内建的序列.其中列表和元组是最常见的类型.其他包括字符串.Unicode 字符串.buffer 对象和 xrange 对象. 列表和元组的主要区别是列表可以修改,而元组不能,如果要根据要求来添加元素,这时候列表适用性会更好,但是当序列不能修改的时候,使用元组则更合适,使用元组与 Python 的运作方式相关. 在 Python 中几乎所有的情况下列表都可以替代元组,但是特殊情况不能(当使用元组作为字典的不可修改的键时,此时键不能修改,所以不能使用列表) 例如: #

【python】序列

参考链接: python内置类型-文档查阅 List 创建列表 #创建列表,列表元素类型可不同 List = ['1',2] number = [1,2,3] 添加元素 #添加元素 #number = [ 1 , 2 , 3 ] #1. append(),往后面追加 一个元素 number.append(4) #number = [ 1 , 2 , 3 , 4 ] #2. extend(),往后面追加列表,其功能 <=> "+" number.extend([5,6]) #