Python序列

1.5.1序列

序列是什么?序列在程序中是一种常用的数据存储方式,几乎每一种程序设计语言都提供了类似的数据结构,JAVA和C中的数组;在python中内置了5个常用的序列结构,分别是列表、元组、集合、字典和字符串。
序列就是一款用于存放多个值得连续内存空间,并且按照一定顺序排列,每一个值(称为元素)都分配了一个数字,称为索引或者位置。通过该索引可以取出相应的值。
在Python中,序列的主要结构有列表、元组、集合、字典和字符串。对于这些序列结构有一下几个同通用的操作,其中,集合和字典不支持索引、切片、相加和相乘操作

1.5.1.1索引

序列中每一个元素都有一个编号,这个编号就是索引,索引是从0开始递增的,即下标为0的元素是第一个元素,下标为1的是第二个元素一次类推:
示例代码:
在这里插入图片描述

运行结果:
在这里插入图片描述

在Python中索引可以是负数,-1表示最后一个元素,-2表示倒数第二个元素依次类推。
示例代码:
在这里插入图片描述
结果:
在这里插入图片描述

1.5.1.2切片

切片操作是访问序列中元素的另外一种方法,他可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。语法
Sname[start🔚step]
说明
Sname 序列名称
start:表示切片的起始位置(包括该位置),如果不指定,则默认为0
end: 表示切片的结束位置(不包括该位置),如果不指定,则默认为序列的长度
step: 表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
如果想要复制整个序列,可以将start和end省略,但中间的冒号要保留 sname[:]

示例代码:
在这里插入图片描述

结果:
在这里插入图片描述

1.5.1.3序列相加

在Python中,支持两种相同的类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用+号实现
示例代码:

a=["1","2","3"]
b=["2","5","6"]
print(a+b)

运行结果:

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

1.5.1.4序列相乘

在Python中,使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。
示例代码:

jieqi=["谷雨飞鱼 ","端午龙舟"]
print(jieqi*3)

运行结果:

['谷雨飞鱼 ', '端午龙舟', '谷雨飞鱼 ', '端午龙舟', '谷雨飞鱼 ', '端午龙舟']

1.5.1.5检查某个元素是否是序列的成员

在Python中,可以使用in关键字检查某个元素是否为列的成员
语法:
Value in sequence
示例代码:

c=["4","5","6"]
print("4" in c)
print("1" in c)

运行结果:

True
False

1.5.1.6计算序列的长度、最大值和最小值

在Python中,提供了内置函数计算序列的长度、最大值、最小值。
len():计算序列长度
max():获取函数返回序列中的最大元素
min():函数返回序列中的最小元素
示例代码:

num=[7,14,21,28,35,42,49,56,63]
print(len(num))    #计算num的长度
print(max(num))    #计算最大值
print(min(num))    #计算最小值

运行结果:

9
63
7

1.5.2列表

Python中的列表也是由一系列按照特定顺序排列的元素组成的。它是python中内置的可变序列。在形式上,列表所有元素都放在一对中括号“[]”中,两个相邻元素间使用逗号“,”分隔。在内容上可以是任何类型的数据,并且统一列表,元素类型是可以不同。

1.5.2.1 列表基本操作

1.使用赋值运算符直接创建列表
语法格式:
listname=[element1,element2,element3,…,elementn]
示例:

number=[1,3,5,7,9,11,13,15,17,19]

2.创建空列表
示例:

emptylist=[]

3.创建数值列表
在Python中可以使用list()+range函数循环出来的结果转化为列表
list函数基本语法如下:
list(data)

示例代码

print(list(range(0,10,2))

运行结果

[0,2,4,6,8]

4.删除列表
对于已经创建的列表可以使用del进行删除。
del基本语法:
del listname
示例代码:

tea=[“红茶”,”绿茶”,”茉莉花茶”]
del tea

5.访问列表元素
这里用到的就是上一章节说到的索引
使用listname[index]访问列表元素
示例代码:

tea=['红茶','绿茶','茉莉花茶']
print(tea[0])

运行结果:

红茶

扩展:列表翻转
我们可以使用listname[::-1]将列表元素进行翻转(可以应用在字符串中,等到字符串时在说)
示例代码

tea=['红茶','绿茶','茉莉花茶']
print(tea[::-1])

运行结果:

['茉莉花茶', '绿茶', '红茶']

6.添加列表元素
我们可以使用append或者insert ,使用extend可以将一个列表的元素 全部追加到另外一个列表中。
append在列表末尾插入数据
语法: listname.append(obj)
示例代码:

tea=['红茶','绿茶','茉莉花茶']
tea.append("茶艺大赏")
print(tea)

结果:

['红茶', '绿茶', '茉莉花茶', '茶艺大赏']

Insert 向列表指定位置插入数据,但此方法执行效率不如append
语法:listname.insert(index,obj) 说明:将obj放到index的位置,原index数据后移

tea=['红茶','绿茶','茉莉花茶']
tea.insert(1,'花茶')
print(tea)

结果:

['红茶', '花茶', '绿茶', '茉莉花茶']

extend语法
listname.extend(seq) 向原listname中追加seq列表中的所有元素
示例代码:

tea=['红茶','绿茶','茉莉花茶']
price=['3元','3元','3元']
tea.extend(price)
print(tea)

运行结果:

['红茶', '绿茶', '茉莉花茶', '3元', '3元', '3元']

7.修改列表元素
修改列表中的元素,只需要通过索引获取该元素,然后再为其重新赋值即可.
示例代码:

tea=['红茶','绿茶','茉莉花茶']
tea[1]="大红袍"
print(tea)

结果:

['红茶', '大红袍', '茉莉花茶']

8.删除列表元素
在Python中删除列表元素有两种方法,一种是根据下标删除,一种是根据值删除
根据索引删除:
使用del listname[index]格式,说明删除listname中下标为index的元素
示例代码:

tea=['红茶','绿茶','茉莉花茶']
del tea[-1]
print(tea)

结果:

['红茶', '绿茶']

根据值删除:
使用remove,listname.remove(“元素内容”),说明移除listname中元素为”元素内容”的元素
示例代码:

tea=['红茶','绿茶','茉莉花茶']
tea.remove("绿茶")
print(tea)

结果:

['红茶', '茉莉花茶']

1.5.2.2遍历

遍历是指沿着某条搜索路线,依次对列表中每个结点均做一次且仅做一次访问。对于列表有两种方式进行遍历:
第一种使用in 遍历:
for item in listname:
#输出item
示例代码:

tea=['红茶','绿茶','茉莉花茶']
	for item in tea:
 		print(item)

运行结果:

红茶
绿茶
茉莉花茶

第二种方式 下标遍历
for index in range(len(listname)):
#输出linstname[index]
示例代码:

tea=['红茶','绿茶','茉莉花茶']
for index in range(len(tea)):
 print(tea[index])

运行结果:

红茶
绿茶
茉莉花茶

1.5.3元组

1.5.3.1 元组基本操作

1.元组的创建
元组的创建和列表一样就是列表的[]括号变成了()
tuplename =(element1,element2,…elementn)

示例代码:

num =(7,14,21,28,35,42,49)

在Python中,元组使用一对小括号将所有的元素括起来,但是小括号不是必须的
示例代码:

nba="科比","乔丹","詹姆斯","威斯布鲁克"
print(type(nba))

输出

<class 'tuple'>

若元组只有一个元素,需要在定义的时候加个“,”,否则会被定义成字符串
示例代码:

gushi1=("劝君更尽一杯酒",)
gushi2=("劝君更尽一杯酒")

运行结果:

<class 'tuple'>
<class 'str'>

同样的元组也可以创建空元组,和数值元组方法和列表一样,这里不再举例
2.删除元组
del tuplename

3.访问元组元素
元组的元素访问也是使用下标进行访问,可参考序列的索引
语法:
Tuplename[index]
4.修改元组元素
元组是不可变序列,所以我们不能对他的单个元素值进行修改。但是元素不是完全不能修改。我们可以对元组进行重新赋值
示例代码:

nba="科比","乔丹","詹姆斯","威斯布鲁克"
nba="威斯布鲁克","科比","邓肯","詹姆斯"
print(nba)

结果:

('威斯布鲁克', '科比', '邓肯', '詹姆斯')

另外也可以对元组进行连接组合,但是连接的一定是元组不是其他的数据类型
示例代码:

nba1=("威斯布鲁克","科比","邓肯","詹姆斯")

nba1=nba1+("张伯伦","艾佛森")

print(nba1)

运行结果:

('威斯布鲁克', '科比', '邓肯', '詹姆斯', '张伯伦', '艾佛森')

1.5.3.2遍历元组

方法和列表遍历一样,一个是in遍历,一个是下标遍历,操作请参考列表的遍历

1.5.3.3元组和列表的区别

相同点:元组和列表都属于序列,而且他们又可以按照特定的顺序存放一组元素,类型又不受限制,只要是Python支持的类型都可以。
区别:
1.列表数据可变序列,他的元素可以随时修改或者删除;元组属于不可变序列,其中的元素不可以修改,除非整体替换
2.列表可以使用 append()、extend()、insert()、remove()、pop()等方法实现添加和修改列表元素,而元组没有这几个方法,所以不能向元组中添加和修改元素。同样,元组不能删除元素。
3.列表可以使用切片访问和修改列表中的元素。元组也支持切片,但是他只支持通过切片访问元组中的元素,不支持修改
4.元组比列表的访问和处理速度快,所以当只是需要对其中的元素进行访问,而不进行任何修改时,建议使用元组
5.列表不能作为字典的键,而元组可以

1.5.4字典

在Python中,字典与列表类似,也是可变序列,不过与列表不同的是,他是无序可变序列,保存的形式是以 键-值对 形式存放的。
字典的主要特征如下:
1.通过键而不是通过索引来读取的
2.字典是任意无序对象的无序集合
3.字典是可变的,并且可以任意嵌套
4.字典中的键必须唯一
5.字典中的键必须不可变(所以列表不能作为字典中的键)

1.5.4.1 字典的创建和删除

在定义字典的时候,每个元素都包含了两个部分”键”+”值”,在创建字典时,键和值之间用冒号分隔,元素和元素之间使用逗号分隔
示例代码

name={"黎明":"90","刘德华":"90","郭敬明":"80"}

字典还可以通过映射来创建,语法格式
dictionary=dict(zip(list1,list2))
说明:
dictionary : 表示字典的名称
zip()函数:用于将多个列表或者元组对应位置的组合为元组,并返回包含这些内容的zip对象。
list1:一个列表,用于指定要生成的字典的键
list2:一个列表,用于指定要生成字典的值
示例:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
print(dict(zip(fruit,price)))

运行结果:

{'橘子': '3', '香蕉': '5', '苹果': '7', '西瓜': '9'}

字典还可以通过关键字参数来进行创建,格式
dictionary=dict(key1=value1,key2=value2,…,keyn=valuen)
示例:

fruitprice=dict(橘子=3,香蕉=5,苹果=7,西瓜=9)
print(fruitprice)

运行结果:

{'橘子': '3', '香蕉': '5', '苹果': '7', '西瓜': '9'}

在Python中还可以使用dict对象的fromkeys()创建值为空的字典,格式
dictionary=dict.fromkeys(list1)
list1:键的列表
示例:

fruit=["橘子","香蕉","苹果","西瓜"]
fruitprice=dict.fromkeys(fruit)
print(fruitprice)

结果:

{'橘子': None, '香蕉': None, '苹果': None, '西瓜': None}

字典的删除:

del dictionary

1.5.4.2通过键值访问字典

在Python中,主要是通过键去访问字典中的值,dictionary[“键”]
示例:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
fruitprice=dict(zip(fruit,price))
print(fruitprice["香蕉"])

结果:

5

不过Python中比较推荐的方法是使用字典对象的get()方法获取指定键的值
格式: dictionary.get(key[,default])
key:字典的键
default:为可选项,用于指定当指定的键不存在的时候,返回一个默认值,如果省略,则返回None
示例代码1:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
fruitprice=dict(zip(fruit,price))
print(fruitprice.get("苹果"))
print(fruitprice.get("猕猴桃"))

运行结果1:

7
None

示例代码2:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
fruitprice=dict(zip(fruit,price))
print(fruitprice.get("苹果"))
print(fruitprice.get("猕猴桃","你要的水果没有了!!!"))

运行结果2:

7
你要的水果没有了!!!

1.5.4.3 添加、修改和删除字典元素

由于字典是可变数列,所以可以随时在字典中添加”键-值”,向字典中添加元素的语法格式如下:
dictionary[key]=value

示例代码:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
fruitprice=dict(zip(fruit,price))
fruitprice["猕猴桃"]=11
print(fruitprice)

运行结果

{'橘子': '3', '香蕉': '5', '苹果': '7', '西瓜': '9', '猕猴桃': 11}

如果dictionary[key]=value 中的key是存在的就是更新键所对应的值,也就是修改
示例代码:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
fruitprice=dict(zip(fruit,price))
fruitprice["猕猴桃"]=11
fruitprice["香蕉"]=11
print(fruitprice)

运行结果:

{'橘子': '3', '香蕉': 11, '苹果': '7', '西瓜': '9', '猕猴桃': 11}

删除元素:

del dictionary[key]

示例:

fruit=["橘子","香蕉","苹果","西瓜"]
price=["3","5","7","9"]
fruitprice=dict(zip(fruit,price))
print(fruitprice)
del fruitprice["西瓜"]
print(fruitprice)

结果:

{'橘子': '3', '香蕉': '5', '苹果': '7', '西瓜': '9'}
{'橘子': '3', '香蕉': '5', '苹果': '7'}

1.5.4.4遍历字典

遍历字典,其实就是遍历key,Python中提供了item()方法可以获取字典的”键-值”,除此之外字典对象还提供了keys()和values()方法,用于返回字典的键和值。
遍历方法有以下几种(结果不给出了):
方法1:

for item in fruitprice.items():
	print(item)

方法2:

for key,value in fruitprice.items():
    print("字典的键是:"+key+"  字典的值是:"+value)

方法3:

for key in fruitprice.keys():
    print("字典的键是:" + key + "  字典的值是:" + fruitprice[key])

方法4:

for value in fruitprice.values():
    print( "字典的值是:" + value)

1.5.5列表元组字典的区别

数据结构是否可变是否重复是否有序定义符号
列表(list)可变可重复有序[]
元组(tuple)不可变可重复有序()
字典(dict)可变可重复无序{key:value}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷雨飞鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值