python中的序列型组合数据类型-列表

提示:提示:python中的序列型组合数据类型:字符串、列表、元组三个


前言

提示:这里可以添加本文要记录的大概内容:

python中的序列型组合数据类型:字符串、列表、元组三个。它们都是有序的数据结构,元素按照特定的顺序排列,并且可以通过索引访问。
本章节仅对列表进行介绍。


提示:以下是本篇文章正文内容,下面案例可供参考

一、序列型组合数据类型的通用操作

序列的通用操作:由于字符串、列表和元组都是序列类型,它们支持一些通用的操作。

函数名描述实例
seq[index]索引访问从左往右索引从 0 开始;从右往左索引从 -1 开始;
sep2=seq1[start:end:step]切片操作范围为左闭右开的区间 [start,end),step是步长,默认为 1且省略,返回切片结果
len(seq)长度计算获取序列中元素的数量
element in seq 或 element not in seq成员检查可以检查某个元素是否存在于序列中
for循环遍历序列中的每个元素迭代使用 for 循环遍历序列中的每个元素
s1+s2连接使用 + 操作符可以将两个序列连接在一起
s1 * n 或 n * s1重复使用 * 操作符可以将序列重复指定次数
min(seq) 和 max(seq)获取可比较元素的序列seq中的最小值和最大值若是字符串则返回ASCII值seq中最小/最大的字符;数值则按照最小/最大的值
seq1.count(seq2)计数可以统计序列seq2在序列seq1中出现的次数
seq1.index(seq2)查找可以找到序列seq2中序列seq1中第一个索引位置
for index, char in enumerate(s1): print(f"Index: {index}, Char: {char}")枚举可以同时获取序列的索引和元素
s1 = "hello"
s2 = "world"
lst1 = [1, 2, 3, 4, 5]
lst2 = [4, 5, 6, 6]
t1 = (7, 8, 9, 10)
t2 = (9, 10, 11, 12)

print(s1[1])  # 输出:e
print(lst1[2])  # 输出:3
print(t1[-1])  # 输出:10

print(s1[1:4])  # 输出:ell
print(lst1[1:4])  # 输出:[2, 3, 4]
print(t1[1:4:2])  # 输出:(8, 10)
print(s1[::-1])  # 输出:olleh(反转字符串、列表、元组均可)
print(lst1 [::2])  # 输出:[1, 3, 5](每隔一个元素取一个)

print(len(s1))  # 输出:5
print(len(lst1))  # 输出:5
print(len(t1))  # 输出:4

print("e" in s1)  # 输出:True
print(3 in lst1)  # 输出:True
print(19 not in t1)  # 输出:True

for char in s1:
    print(char)  # 逐个打印字符 h e l l o
for num in lst1:
    print(num)  # 逐个打印列表元素 1 2 3 4 5
for item in t1:
    print(item)  # 逐个打印元组元素 7 8 9 10

print(s1 + " " + s2)  # 输出:hello world
print(lst1 + lst2)  # 输出:[1, 2, 3, 4, 5, 4, 5, 6, 6]
print(t1 + t2)  # 输出:(7, 8, 9, 10, 9, 10, 11, 12)

print(s1 * 3)  # 输出:hellohellohello
print(lst1 * 2)  # 输出:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(t1 * 3)  # 输出:(7, 8, 9, 10, 7, 8, 9, 10, 7, 8, 9, 10)

print(min(s1))  # 输出:e(按字母顺序返回ASCII值中最小的字符)
print(max(lst1))  # 输出:5
print(min(t1))  # 输出:7

s3 = "hello"
lst3 = [1, 2, 3, 2, 4]
t3 = (5, 6, 7, 6, 8)
print(s3.count("l"))  # 输出:2
print(lst3.count(2))  # 输出:2
print(t3.count(6))  # 输出:2

print(s3.index("l"))  # 输出:2
print(lst3.index(2))  # 输出:1
print(t3.index(6))  # 输出:1

for index, char in enumerate(s1):
    print(f"Index: {index}, Char: {char}")
    
	#	Index: 0, Char: h
	#	Index: 1, Char: e
	#	Index: 2, Char: l
	#	Index: 3, Char: l
	#	Index: 4, Char: o
	
for index, num in enumerate(lst1):
    print(f"Index: {index}, Num: {num}")
    
	#	Index: 0, Num: 1
	#	Index: 1, Num: 2
	#	Index: 2, Num: 3
	#	Index: 3, Num: 4
	#	Index: 4, Num: 5

二、列表(list)定义及特点

定义:列表是一个可变的有序序列,可以包含不同类型的数据。
特点
• 可变:可以修改列表中的元素。例如 lst[2] = ‘h’ 修改列表的元素成功。
• 支持索引和切片:可以通过索引访问单个元素,通过切片获取子列表。例如 :print(lst[1])、print(lst[1:3])

三、列表(list)类型的使用

3.1 支持列表方法:增、删、改、查

序号函数名描述实例
1lst.append()列表末尾添加一个元素
2lst.extend([5, 6])在列表末尾添加多个元素
3lst.insert(2, “new”)在指定位置插入一个元素
4lst.remove(4)删除第一个值为 4 的元素()内为列表中的元素
5lst.pop()移除并返回最后一个元素一般 value=lst.pop() 获取删除的值
6lst[2] = ‘h’可以将对应索引值直接修改
7lst2 = lst[1:4]切片操作,返回切片后的列表
lst = [1, 2, 3]
lst.append(4)  # 在列表末尾添加一个元素
print(lst)  # 输出:[1, 2, 3, 4]

lst.extend([5, 6])  # 在列表末尾添加多个元素
print(lst)  # 输出:[1, 2, 3, 4, 5, 6]

lst.insert(2, "new")  # 在指定位置插入一个元素
print(lst)  # 输出:[1, 2, 'new', 3, 4, 5, 6]

del lst[2]  # 删除索引为 2 的元素
print(lst)  # 输出:[1, 2, 3, 4, 5, 6]

lst = [1, "sd", 3, 0, 5]
lst2 = lst[1:4] 
print(lst2) # 输出:['sd', 3, 0]

3.2 支持列表方法~排序/清空列表

序号函数名描述实例
1lst.sort()对自身从小到大排序,没有返回值
2sorted(list)返回排序后的列表,但原列表不变从小到大排序
3lst.reverse()对自身排序反转,没有返回值lst[::-1],原列表不变,返回列表排序反转
4lst.clear()对自身清空,没有返回值
lst1=[1,3,5,2,8,6,1]
x1=lst1.sort()  # 仅将list1进行重新排序,不会赋值给x1
print(lst1)  # 输出:[1, 1, 2, 3, 5, 6, 8]
print(x1)    # 输出:None

lst2=[1,3,5,2,8,6,1]
x2=sorted(lst2)	# 将重新排序赋给x2,自身不变
print(lst2)     # 输出:[1, 3, 5, 2, 8, 6, 1]
print(x2)       # 输出:[1, 1, 2, 3, 5, 6, 8]
lst2.clear()  # 清空列表
print(lst)  # 输出:[]

3.3 列表推导式

列表推导式是一种简洁的方式来创建列表.

# 创建一个包含 0 到 9 的平方的列表
squares = [x**2 for x in range(10)]
			# 将x的每一次值,都经过x**2
print(squares)  # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 创建一个包含偶数平方的列表
even_squares = [x**2 for x in range(10) if x % 2 == 0]
			# 将x的每一次值,在if判断为true时,再经过x**2
print(even_squares)  # 输出:[0, 4, 16, 36, 64]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值