欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【循序渐进学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)()????
  • 列表是可变的数据类型(支持增删改查)
  • 元组是不可变的数据类型(仅支持查)