Python的序列类型初始

人生苦短,我学python

  • 一、序列简介
  • 二、列表和元组
  • 三、 序列类型基本操作
    • 1、下标
      • 1.1正向下标
      • 1.2 反向下标
    • 2、切片
    • 3、成员运算符
    • 4、序列运算
    • 5、序列常用内置函数
      • 5.1 len()
      • 5.2 max()和min()
      • 5.3 sum()
      • 5.4sorted()
  • 本章小结

一、序列简介

数值类型:可以表示数值

int 整型 = 整数

float 浮点型 = 小数

bool 布尔型 = 用于判断/也可以作为数值进行运算

序列类型:存储多个数据的一种数据类型

str 字符串 -> 数字 字母,特殊符号,中文等数据

list 列表

tuple 元组

序列是指可以存放多个数值的连续内存空间,这些值是按照一定顺序排列,可以通过每个值所在位置的下标访问它

二、列表和元组

列表是python一种数据类型,list是一个有序可以装各种数据类型的容器

list的创建:

直接使用[]括起来,各个元素使用英文逗号分隔开

name_list = ['摆烂阳', '从不吃晚饭',  True, 123, 1.1]
print(name_list)

range() 函数 : 可以根据给定的参数来生成整数序列, 返回的迭代器

迭代器是需要转换成列表才能查看

具体语法:

range(start,stop) # start 和 stop 代表2个参数
# start 开始
# stop 结束
# 注意:包头不包尾,从start开始到stop结束 [start,stop)
#  start <= x < stop , x ∈ z
# 生成 1~1000 的列表
n = list(range(1, 1001))  # 由于不包尾,所以1001取不到,只会取到1000
print(n)
0
# 生成 0 ~ 100 之间的偶数
range(start,stop,step=1)
# start 开始
# stop 结束
# step 步长
# 生成 0 ~ 100 之间的偶数
li = list(range(0, 104, 2))
print(li)
# 输出 1 ~ 100 中 7的倍数
# 第一步 确定头尾
# 第二步 跨步
li2 = list(range(0, 101, 7))
print(li2)
# 凡是有 固定的 差值的 整数,都可以使用range生成
如果希望生成降序的整数序列,步长可以改为负数
# 10 ~ 1 列表
li = list(range(10, 0,-1))  # 10头   0尾
print(li)
# 生成列表 8 6 4 2 0
s = list(range(8,0,-2))
print(s)

元组跟列表基本一样,都可以用来存储多个数据,最大的区别是列表可以修改,而元组是不行,元组最大特色是不能修改

元组的创建

() 英文括号括起来,每个元素用逗号隔开

111 = (1,2,3,4,"摆烂阳")
print(111)
print(type(111))

配合range()函数,再用tuple类型转换

t = tuple(range(1,101))
print(t)

三、 序列类型基本操作

序列类型:list,tuple,str

1、下标

1.1正向下标

在序列类型中每一个元素都会存在一个下标,下标是从左往右默认从0开始。可以通过下标去提取元素

语法格式:

# 提取方式:序列[下标]
# 注意这里是 []
只有函数的后面才跟()
s = "Python"  # 下标 = 第几个 - 1
print(s[3])
print(s[4])
print(s[5])
print(s[6]) # 访问元素时不可以超过最大下标,超过则报错
嵌套列表的提取,比方说提取 摆
lis = [2, 4, 6, ["摆","烂"], 8]
mj = lis[3]  #  mj = ["摆","烂"]
print(mj[0])

1.2 反向下标

反向下标和正向下表不同的地方在于反向下标是从右至左开始,右边第一位的值为-1

s = "python3"
# 此时提取 t
# 正向 2  反向 -5
print(s[2]) # print(s[-5])

2、切片

在Python中, 切片 (slice) 是对序列型对象 (如 list, string, tuple)的一种高级索引方法。 普通索引只取出序列中 一个下标 对应的元素,而切片取出序列中 一个范围 对应的元素,这里的范围不是狭义上的连续片段。

如果想截取序列中的一段序列,就可以使用切片

例如:

L = ["稿子", "斧头", "铁锹", "AK47", "98K", "锄头"]
# 提取出 枪械武器类别 到新列表中
# 切片语法  序列[start:stop:step]
# 和range有点相似,同样是包头不包尾
L = ["稿子", "斧头", "铁锹", "AK47", "98K", "锄头"]
print(L[3:5])
s = "hello world!"
# hello
# 1.先确定h的下标  0
# 2.再确定o的下标  4  # 不包尾 + 1
print(s[0:5])
# hlo
# 1.先确定头的下标 0
# 2.再确定尾的下标 4+1
# 3.在确定步长 2
print(s[0:5:2])
s = "hello world!"
print(s[:])  # 头部参数如果没写,默认是从头开始切
                # 尾部参数如果没写,默认切到底
s = "hello world!"
# 反转序列类型
print(s[::-1]) # 如果说步长是负数的话,头就是右边,尾就是左边

3、成员运算符

in : 属于

not in : 不属于

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列能找到,则返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
s = "Hello My friend"
print("H" in s)
print(" " in s)  # 字符串中 空格也算做一个字符
print("h" in s)  # False
print("ll" in s)  # True
print("fr " in s)
print("Hlo" in s) # 不行 得连续

4、序列运算

序列类型 只能做 加法 和 乘法

序列的相加 就是 两边 拼接

序列的相乘 就是 重复和自己拼接

s1 = "摆烂阳"
s2 = "从不吃晚饭"
list1 = ["摆烂阳"]
list2 = ["从不吃晚饭"]
print(s1 + s2)  # 直接拼接
print(list1 + list2)  # 直接合并
print(list1 * 5) # ['摆烂阳', '摆烂阳', '摆烂阳', '摆烂阳', '摆烂阳']

5、序列常用内置函数

什么是内置函数

python官方提供好的功能,可以直接拿来使用,比如print,input

函数 功能
len() 计算序列的长度,即返回序列中包含多少个元素。
max() 找出序列中的最大元素。
min() 找出序列中的最小元素。
sum() 计算元素和。
sorted() 对元素进行排序。

学内置函数主要学这2点

1.函数的功能

2.函数的参数

5.1 len()

len(seq): 计算序列的长度,即返回序列中包含多少个元素

seq:序列
s = "hello,world"
print(len(s))
li = [1,2,3,4,"摆烂阳"]
print(len(li))

5.2 max()和min()

max(seq) 找出序列中的最大元素。

min(seq) 找出序列中的最小元素。

seq:序列
li = [2, 4, 0, 6, 3, 5]
print(max(li))
print(min(li))

5.3 sum()

sum(seq): 求序列元素的和

seq:序列
li = [2, 4, 0, 6, 3, 5]
print(sum(li))

5.4sorted()

sorted(seq) 对元素进行排序。

升序 sorted(seq)

降序 sorted(seq,reverse=True)

li = [2, 4, 0, 6, 3, 5]
print(sorted(li))
print(sorted(li,reverse=))