【循序渐进学Python】Python中的序列(二)——列表与元组
程序员文章站
2022-06-10 10:08:46
...
【循序渐进学Python】Python中的序列(二)——列表与元组
今天我们继续来学习Python中的序列,在Python序列中我们上篇博客已经对字符串进行了详细的讲解,今天我们来学习序列中的列表与元组.
list(列表)
- 列表是用来盛放表示一串性质相同或者相似的数据,这些数据组成有序的一种排列方法
- 如果一个类型可以支持切片和下标索引,那它就是一个有序的数据类型
- 列表是一个可变的数据类型
- 一个列表可以盛放:数字,字符串,列表,或者其他等等
列表的定义:
直接表示列表,需要用**[]中括号括起来,数据中间用逗号,隔开
lb = [1, 2, 3, 5, 7, 8, 6, 4, "列表里面还能放老多东西", 3.4, [3.2, 6.5]]
print(lb)
创建空列表
my_list1 = []
列表的下标索引和切片案例:
list1 = [1, 2, 3, 3, "hello"]
print(list1[2])
print(list1[::-1])
列表的循环遍历:
for ind in list1:
print(ind)
a = 0
while a < len(list1):
print(list1[a])
a += 1
列表的相关操作:
# 列表的字长
idx = len(list1)
print(idx)
# 列表的添加
# 将整个字符串一起添加到列表中
list1.append("word")
print(list1)
# 列表的添加
# extend 添加 只能进行迭代添加 并且会将可迭代的对象拆分为最小的单元,依次保存到列表中
list1.extend("you")
print(list1)
# 列表的插入
# 在下标索引所对应的字符串后面插入字符串
list1.insert(1, "两")
print(list1)
# 列表的替换
list1[2] = "两"
print(list1)
# 列表中存在和不存在
if 2 in list1:
print("存在")
if 6 not in list1:
print("不存在")
# 列表中的查找
a = list1.index(2)
print(a)
b = list1.count(3)
print(b)
# 列表中的删除
# del
# 格式:del list[下标]
del list1[2]
print(list1)
# pop
# 格式:value = list.pop(index)
value = list1.pop(1)
print(list1)
print(value)
# remove
# 格式:list.remove(元素的具体数据)
list1.remove(1)
print(list1)
# clear
# list.clear() 清除列表中的所有数据
list1.clear()
print(list1)
列表的嵌套
概念: 列表中的元素类型也可以是列表类型
school_list = [["清华", "北大"], ["山大", "青大"], ["城建", "陕电"]]
my_list1 = school_list[0]
print(my_list1)
# 输出结果 ['清华', '北大']
my_list2 = school_list[1]
print(my_list2)
# 输出结果 ['山大', '青大']
my_list3 = school_list[0][1]
print(my_list3)
# 输出结果 北大
列表的去重
my_list = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7]
# 输出 1234567
new_list = []
# 创建一个新的空的列表
for num in my_list: # for循环
if num not in new_list: # 判断新的列表里是否有这个数
new_list.append(num) # 将没有的数添加进去
print(new_list)
#将列表转化为集合
print(set(my_list))
列表的排序
import random
# 定义一个空格的列表
my_list = []
for num in range(6):
value = random.randint(-100, 100)
# 随机-100到100之间的6个数
my_list.append(value)
# 将随机数添加到列表里
print(my_list)
# 升序 sort()等价于sort(reverse=Flase)
my_list.sort()
print(my_list)
# 降序 sort(reverse=True)
my_list.sort(reverse=True)
print(my_list)
# 倒序
# 方法一
my_list.reverse()
print(my_list)
# 方法二
ret = my_list[::-1]
print(ret)
(tuple)元组
元组
-
Python的元组与列表类似,不同之处在于元组的元素不能修改。
-
元组使用小括号,列表使用方括号。
-
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组的相关操作
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5)
# 创建空元组
tup3 = ()
# 元组中只包含一个元素时,需要在元素后面添加逗号
tup4 = (50,)
# 元组与字符串类似,下标索引从0开始,可以进行截取,组合等
tup5 = (1, 2, 3, 4, 5, 6, 8, 8, 8, 8, 8)
a = len(tup5)
print(a)
print(tup5[-1])
print(tup5[::-1])
# 元组的循环嵌套
for idx in tup5:
print(idx)
i = 0
while i < len(tup5):
print(tup5[i])
i += 1
# 元祖的存在和不存在
if 6 in tup5:
print("存在")
if 7 not in tup5:
print("不存在")
# 元祖按照下标索引进行查询
a = tup5.index(8)
print(a)
# 元祖统计字符串在元组中出现的次数
b = tup5.count(8)
print(b)
列表和元组的异同
- 列表和元组是极其相似的
相同点:
- 可以保存任意类型的数据
- 有序的数据类型(可以使用下标索引,切片)
- 可以循环遍历(while for)
不同点:
- 列表(list)[] 元组(tuple)()????
- 列表是可变的数据类型(支持增删改查)
- 元组是不可变的数据类型(仅支持查)