序列:一种数据结构,序列中的每个元素都会被分配到一个序号(元素的位置)。
常用的序列有:列表、元组、字符串。
一、序列的操作:
1:通过索引取值
nums_list = [1,2,3,4]
print(nums_list[0]) # 1
nums_tuple = (1,2,3,4)
print(nums_tuple[1]) # 2
nums_str = "1234"
print(nums_str[3]) # 4
2:序列切片
nums_list = [1,2,3,4]
print(nums_list[0:2]) # [1,2]
nums_tuple = (1,2,3,4)
print(nums_tuple[1:4]) # (2,3,4)
nums_str = "1234"
print(nums_str[2:]) # 34
切片:nums[startindex:endindex:step],startindex表示从哪个索引开始取值(对应索引的值要取),endindex表示到哪个索引结束取值(对应索引的值不取),step表示下一次取值间隔几个索引(即步长,不写的话默认为1)
从第一个元素开始取值,startindex可以不填写
取到最后一个元素,endindex可以不填写
例:nums= [1,2,3,4,5,6,7,8,9,10],需要得到[1,2,3,4,5,6,7,8,9,10]
print(nums[:]) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
例:nums = [1,2,3,4,5,6,7,8,9,10], 需要得到[2,4,6,8]
print(nums[1:8:2]) # [2,4,6,8],从索引1开始取值,到索引8结束,每次间隔2个值
例:nums = [1,2,3,4,5,6,7,8,9,10], 需要得到[9,8,7,6]
# 方法一,从左往右取索引,索引从0开始数,步长为-1
print(nums[8:4:-1]) # [9, 8, 7, 6]
# 方法二,从右往左取索引,索引从-1开始数,步长为-1
print(nums[-2:-6:-1]) # [9, 8, 7, 6]
注意:当步长为负数时,起始位置startindex的值 > 结束位置endindex的值
3:序列相加:相同类型的序列才能相加
序列相加就是将一个序列中的元素追加到另一个序列的末尾,并返回一个新序列
例:
# 列表
a_list = [1,2,3]
b_list = [5,6,7]
result = a_list+b_list
print(result) # [1, 2, 3, 5, 6, 7]
print(a_list) # [1, 2, 3]
print(b_list) # [5, 6, 7]
# 元组
a_tuple = (1,2,3)
b_tuple = (5,6,7)
result = a_tuple + b_tuple
print(result) # (1, 2, 3, 5, 6, 7)
print(a_tuple) # (1, 2, 3)
print(b_tuple) # (5, 6, 7)
# 字符串
a_str = "abc"
b_str = "def"
result = a_str + b_str
print(result) # abcdef
print(a_str) # abc
print(b_str) # def
不同类型的序列相加,会报错
4:序列相乘:
序列相乘就是一个序列与int类型的数字相乘,当数字为正整数时,就是将同一个序列重复追加到序列末尾,返回一个新的序列,当数字为负整数和0时,会返回一个空的新序列。
# 列表
a_list = [1,2,3]
result_1 = a_list * 2
print(result_1) # [1, 2, 3, 1, 2, 3]
print(a_list) # [1, 2, 3]
result_2 = a_list * 0
print(result_2) # []
print(a_list) # [1, 2, 3]
result_3 = a_list * -2
print(result_3) # []
print(a_list) # [1, 2, 3]
# 元组
a_tuple = (1,2,3)
result_1 = a_tuple * 2
print(result_1) # (1, 2, 3, 1, 2, 3)
print(a_tuple) # (1, 2, 3)
result_2 = a_tuple * 0
print(result_2) # ()
print(a_tuple) # (1, 2, 3)
result_3 = a_tuple * -2
print(result_3) # ()
print(a_tuple) # (1, 2, 3)
# 字符串
a_str = "abc"
result_1 = a_str * 2
print(result_1) # "abcabc"
print(a_str) # "abc"
result_2 = a_str * 0
print(result_2) # ""
print(a_str) # "abc"
result_3 = a_str * -2
print(result_3) # ""
print(a_str) # "abc"
5:判断成员是否在序列中
成员运算符:
运算符 | 含义 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
例:
# 列表
a_list = [1, 'a', 'b', 2]
print('a' in a_list) # True
print(3 in a_list) # False
print('a' not in a_list) # False
print('c' not in a_list) # True
# 元组
a_tuple = (1, 'a', 'b', 2)
print(1 in a_tuple) # True
print(3 in a_tuple) # False
print('b' not in a_tuple) # False
print('c' not in a_tuple) # True
# 字符串
a_str = "asd123"
print('1' in a_str) # True
print('4' in a_str) # False
print('b' not in a_str) # True
print('d' not in a_str) # False
6:获取序列的长度:len()。返回值为具体的数值
a_list = ["a", "ab", 1, 2, 3]
print(len(a_list)) # 5
a_tuple = (1, 2, 3, 4, 5, 6)
print(len(a_tuple)) # 6
a_str = "asdfghjkj"
print(len(a_str)) # 9
7:获取序列的最大值max()、最小值min()
获取序列中的最大值,最小值时,序列中的元素类型要保持一致
a_list = ["a", "ab", "abc"]
print(max(a_list)) # 'abc'
print(min(a_list)) # 'a'
a_tuple = (1, 2, 3, 4, 5, 6)
print(max(a_tuple)) # 6
print(min(a_tuple)) # 1
a_str = "asdfghjkj"
print(max(a_str)) # 's'
print(min(a_str)) # 'a'