day 4 序列(列表 元组)

本文介绍了Python中的序列,重点讲解了列表和元组的概念、创建与删除、访问元素、遍历、添加、修改和删除操作。列表是可变序列,支持各种操作,如添加、修改和排序;元组是不可变序列,创建后不能更改。文章还探讨了切片、序列相加和相乘、成员检查、长度计算以及内置函数的应用。
摘要由CSDN通过智能技术生成

6 序列

6.1 序列

6.1.1含义:

一块用于存放抖个值得连续内存空间。

序列结构有:列表、元组、集合、字典、字符串

索引:序列中每一个元素的编号,从0开始

元素1

元素2

元素3

……

元素n-1

元素n

0

1

2

……

n-2

n-1

索引也可以是负数

元素1

元素2

元素3

……

元素n-1

元素n

-n

-(n-1)

-(n-2)

……

-2

-1

负数做索引时是从-1开始的

6.1.2切片

序列名称[start:end:step]

start:切片开始位置,默认为0

end:切片截止位置(不包括),默认为序列长度

step:切片步长,默认为1

复制序列:序列名称[:]

6.1.3 序列相加

序列名称1+序列名称2  #将两个序列合成一个序列

6.1.4 序列相乘

序列名称1*n  #新序列的内容为原序列重复n次的结果

特殊功能:初始化指定长度列表

emptylist = [None]*5
print(emptylist)

6.1.5 检查某个元素是否是序列的成员(元素)

成员(元素) in 序列名  #检查成员(元素)在序列中 结果在为True,不在为False
成员(元素) not in 序列名  #检查成员(元素)不在序列中 结果不在为True,在为False

 

fruit = ['apple','orange','bannan']

print('apple' in fruit)

print('pear' not in fruit)

 

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

len(序列名)  #计算序列的长度

max(序列名)  #返回序列的最大元素

min(序列名)  #返回序列的最小元素

6.1.7 内置函数及作用

函数名称

作用

list(序列名)

将序列转换为列表

str(序列名)

将序列转换为字符串

sum(序列名)

计算元素和

sorted(序列名)

对元素排序

reversed(序列名)

反向序列中的元素

enumerate(序列名)

将序列组合为一个索引序列,多用在for循环中

例子

fruit = ['apple','orange','bannan']

print('apple' in fruit)

print('pear' not in fruit)

print(len(fruit)) #计算序列的长度

print(max(fruit)) #返回序列的最大元素

print(min(fruit)) #返回序列的最小元素

print(list(fruit))

print("****")

print(str(fruit))

#print(sum(fruit))

print(sorted(fruit))

print("****")

print(reversed(fruit))

print("****")

print(enumerate(fruit))

6.2 列表

一系列特定顺序排列的元素(类型可不同)

6.2.1列表的创建和删除

(1)使用赋值运算符直接创建列表

listname = [element1,element2,......,elementn]

(2)创建空列表

emptylist =[]

(3)创建数值列表

list (data)

data表示可以转换为列表的数据:有range对象、字符串、元组或其他科迭代类型的数据

(4)删除列表

del listname

6.2.2 访问列表元素

print(listname[索引])

6.2.3 遍历列表

(1)直接使用for循环实现

for item in listname:
    #输出item

(2)打印元素和索引

for index,item in enumerate(listname):
    # 输出index,item

index:用于保存元素的索引

item:用于保存获取元素的值

listname:列表名

6.2.4 添加、修改和删除列表元素

listname.append(obj)

在列表末尾追加元素(也可是列表)

listname.insert(索引,元素或列表) #向列表的指定位置插入元素
listname.extend(要添加的列表名) #将一个列表中的全部元素添加到另一个列表中

用+连接列表

l1 = ['香蕉','菠萝','栗子']
l2 = ['白菜','茄子','辣椒']
print(l1+l2)
l1.append('桃子')
print(l1)

['香蕉', '菠萝', '栗子', '白菜', '茄子', '辣椒']

['香蕉', '菠萝', '栗子', '桃子']

 

l1 = ['香蕉','菠萝','栗子']

l2 = ['白菜','茄子','辣椒']

l2.insert(0,'土豆')#也可加入列表,作为元素

print(l2)

l1.extend(l2)

print(l1)

['土豆', '白菜', '茄子', '辣椒']

['香蕉', '菠萝', '栗子', '土豆', '白菜', '茄子', '辣椒']

6.2.5 对列表进行统计排序操作

功能

方法或函数

介绍

返回值

获取制定元素出现的次数

列表名.count(对象

#方法

精确匹配

元素在列表中出现的次数

获取指定元素首次出现的下标

列表名.index(对象)

#方法

精确匹配

元素在列表中首次出现的位置(索引)

统计数值列表的元素和

sum(列表名[,start])

#函数

start表示统计结果加上start,是可选参数,默认为0

返回求和结果

使用列表对象sort()方法实现排序

列表名.sort(key = None , reverse = False)

key:表示用于比较的键,默认状态为:先对大写字母排序,再对小写字母排序。如k=str.lower表示排序时不区分大小写;

reverse:为True时降序排列

为False时为升序排列,默认为升序

排序后的列表注意:对中文排序不友好,排序后原列表元素位置会发生变化

使用内置sorted()函数实现排序

sorted(列表名, key = None , reverse = False)

排序后的列表注意:对中文排序不友好,排序后原列表元素位置不发生变化

 

l1=[1,2,3,3,2,1]
print(l1.count(3))
print(l1.index(2))#未出现会报错
print(sum(l1,3))
l1.sort()
print(l1)
print(sorted(l1,reverse=True))

 

6.2.6 列表推导式

(1)生成制定范围的数值列表

列表名 = [表达式 for var in range]

import random
rd = [random.randint(0,100) for i in range(10)]
print(rd)

[42, 5, 5, 83, 31, 96, 43, 60, 77, 61]

(2)根据列表生成制定需求的列表

Newlist = [expression for var in list]

shouliang = [100,200,400,300]
total = [x*0.5 for x in shouliang]
print(total)

[50.0, 100.0, 200.0, 150.0]

(3)从列表中选择符合条件的元素组成新的列表

Newlist = [expression for var in list if condition]

shouliang = [100,200,400,300]
total = [x*0.5 for x in shouliang if x>200]
print(total)

[200.0, 150.0]

6.3 元组

由一系列按特定顺序排列的元素组成的不可变序列。

6.3.1 元组的创建和删除

(1)使用赋值号创建元组

元组名 = (元素1,元素2,…….元素n) 

注意:

  1. 小括号也可以省略
  2. 创建值包含一个元素的元组,元素后要加逗号。未加逗号则是字符串

(2)创建空元组

元组名 = ()

(3) 创建数值元组

tuple(data)

data:可以使range对象、字符串、元组或者其他科迭代类型的数据

(4)删除元组

del 元组名

6.3.2 访问元组元素·

(1)使用索引访问元组元素

T = ('python',28,('人生苦短','我用python'),['爬虫','自动化运维','云计算','web开发'])
print(T)
print(T[0])

 

('python', 28, ('人生苦短', '我用python'), ['爬虫', '自动化运维', '云计算', 'web开发'])

Python

注意:

输出元组时,包括左右两侧的小括号

输出单个元组元素时,不包括小括号,字符串不带引号,不包括小括号

(2)使用切片获取指定的元素

print(T[:3])

('python', 28, ('人生苦短', '我用python'))

(3)修改元组元素

注意:不能对元组的单个元素进行修改

可以对整个元组进行重新赋值,也可以对元组进行连接组合(连接的内容必须是元组)

(4)元组推导式(类似类表推导式)

不同元组需要使用tulpe函数,将生成器对象转换为元组

元组名 = tuple(表达式 for var in range)

import random
rd = [random.randint(0,100) for i in range(10)]
print(rd)

[42, 5, 5, 83, 31, 96, 43, 60, 77, 61]

元组推导式生成器进行遍历后,即不存在了

nb = (i for i in range(3))

for i in nb:

    print(i,end=" ")

print(tuple(nb))

0 1 2 ()

元组和列表的区别

类型

定义

比喻

元素修改

方法函数

切片

速度

字典的键

列表

[]

铅笔在白纸上写的歌词

随意

append();extend();

insert();pop();remove()

可切片访问,修改元素

不可以

元组

()

钢笔写下的歌词,只能换纸重写或续纸

不可以

无上述方法

只可以切片访问元素

可以

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值