Python中的通用序列(列表、元组、字符串)操作

Python中的通用序列操作

Python中有六种内置序列,三种基本类型序列操作比较常见:列表、元组、字符串

大部分序列可以进行通用操作,包括索引、切片、相同类型序列相加,乘法、成员资格、长度、最大值和最小值

索引

python中的索引从0开始计数,可以从右向左,也可以从左向右

从左向右

x1 = [1, 2, 3, 4]
x2 = (1, 2, 3, 4)
x3 = "hello"
print(x1[0])
print(x2[0])
print(x3[0])

结果:

1
1
h

从右向左

从右向左是因为python索引支持负值

x1 = [1, 2, 3, 4]
x2 = (1, 2, 3, 4)
x3 = "hello"
print(x1[-1])
print(x2[-1])
print(x3[-1])
4
4
o

切片

python中的所有序列类型都可以进行切片操作

记切片的参数为[a,b,c],则a是切片第一个参数,默认为0,b是切片第二个参数,默认为序列的最后,c为步长(每次跳跃的个数)默认为1

x1 = [1, 2, 3, 4]

print(x1[0:3])  # [1, 2, 3]
print(x1[2:3])  # [3]

# a为默认
print(x1[:3])  # [1, 2, 3]
# b为默认
print(x1[0:])  # [1, 2, 3, 4]
# a,b都为默认
print(x1[:])  # [1, 2, 3, 4]
# 说明c默认为1
print(x1[0:4])  # [1, 2, 3, 4]
print(x1[0:4:1])  # [1, 2, 3, 4]
print(x1[0:4:2])  # [1, 3]

# 说明负值情况
print(x1[-3:3])  # [2, 3]
print(x1[2::-1])  # [3, 2, 1]

注意:

  • 步长c不支持为0
  • 正数步长从序列头部开始从左往右获取元素,负数相反,从右向左
  • 正数步长开始点必须小于结束点,负数步长开始点必须大于结束点

序列相加

可以使用+做连接,必须是同类型的序列才能相加

x1 = [1, 2, 3, ] + [4, 5, 6, 7]
x2 = (1, 2, 3,) + (4, 5, 6, 7)
x3 = "123" + "4567"
print(x1)  # [1, 2, 3, 4, 5, 6, 7]
print(x2)  # (1, 2, 3, 4, 5, 6, 7)
print(x3)  # 1234567
(1, 2, 3,) + [4, 5, 6, 7]  # 错误
# Traceback (most recent call last):
#   File "E:\main.py", line 8, in <module>
#     (1, 2, 3,) + [4, 5, 6, 7]  # 错误
# TypeError: can only concatenate tuple (not "list") to tuple

序列重复

可以用*做重复

x1 = [1, 2, 3] * 3
x2 = (1, 2, 3) * 3
x3 = '123' * 3
print(x1)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(x2)  # (1, 2, 3, 1, 2, 3, 1, 2, 3)
print(x3)  # 123123123

成员资格

in运算符判断是否在序列中,是返回True,不是返回False

x1 = [1, 2, 3]
x2 = (1, 2, 3)

print(5 in x1)  # False
print(2 in x1)  # True

注意:

in操作符的右边是字符,左边也要是字符,但是()in [] 是OK的,eg:

print(5 in "123456")
# Traceback (most recent call last):
#   File "E:\main.py", line 7, in <module>
#     print(5 in "123456")
# TypeError: 'in <string>' requires string as left operand, not int
print((2) in [1, 2, 3])  # True

最大最小值求和

x1 = [1, 2, 3, 4, 5, 6]

print("序列长度", len(x1))  # 序列长度 6
print("最小值", min(x1))  # 最小值 1
print("最大值", max(x1))  # 最大值 6
print("求和", sum(x1))  # 求和 21

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值