自学内容网 自学内容网

Python数据容器——列表,元组

数据容器

Python中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。

数据容器根据特点的不同,如:

  • 是否支持重复元素

  • 是否可以修改

  • 是否有序,等

    分为5类,分别是:
    列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

列表
基本语法

字面量

[元素1,元素2,元素3,…]

定义变量

变量名称=[元素1,元素2,元素3,…]

定义空列表
变量名称 = []
变量名称 = list()

列表内的每一个数据,称之为元素

  • 以 [] 作为标识
  • 列表内每一个元素之间用, 逗号隔开

案例

# 定义一个列表 list
my_list = ["haha", "hehe", "xixi"]
print(my_list)
print(type(my_list))

my_list = ["liushisan", 666, True]
print(my_list)
print(type(my_list))

# 定义一个嵌套的列表
my_list = [ [1, 2, 3], [4, 5, 6]]
print(my_list)
print(type(my_list))

注:元素的数据类型没有任何限制,甚至元素也可以是列表,这样就定义了嵌套列表

列表的下标索引

列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增,或者,可以反向索引,也就是从后向前:从-1开始,依次递减(-1、-2、-3…),列表是嵌套的列表,同样支持下标索引和C/C++中的二维数组一样

# 通过下标索引取出对应位置的数据
my_list = ["Tom", "Lily", "Rose"]
# 列表[下标索引], 从前向后从0开始,每次+1,  从后向前从-1开始,每次-1
print(my_list[0])
print(my_list[1])
print(my_list[2])
# 错误示范;通过下标索引取数据,一定不要超出范围
# print(my_list[3])

# 通过下标索引取出数据(倒序取出)
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])


# 取出嵌套列表的元素
my_list = [ [1, 2, 3], [4, 5, 6]]
print(my_list[1][1])
列表的常用操作
index方法
mylist = ["haha", "hehe", "xixi"]
#  查找某元素在列表内的下标索引
index = mylist.index("haha")
print(f"itheima在列表中的下标索引值是:{index}")
# 如果被查找的元素不存在,会报错
# index = mylist.index("hello")
# print(f"hello在列表中的下标索引值是:{index}")
修改元素
mylist = ["haha", "hehe", "xixi"]
# 修改特定下标索引的值
mylist[0] = "晚安刘十三"
print(f"列表被修改元素值后,结果是:{mylist}")
插入
mylist = ["haha", "hehe", "xixi"]
# 在指定下标位置插入新元素
mylist.insert(1, "liu")
print(f"列表插入元素后,结果是:{mylist}")
追加元素
mylist = ["haha", "hehe", "xixi"]
# 在列表的尾部追加```单个```新元素
mylist.append("晚安刘十三")
print(f"列表在追加了元素后,结果是:{mylist}")

# 在列表的尾部追加```一批```新元素
mylist2 = [1, 2, 3]
mylist.extend(mylist2)
print(f"列表在追加了一个新的列表后,结果是:{mylist}")
删除元素,清空列表
# 删除指定下标索引的元素(2种方式)
mylist = ["haha", "hehe", "xixi"]

# 方式1:del 列表[下标]
del mylist[2]
print(f"列表删除元素后结果是:{mylist}")
# 方式2:列表.pop(下标)
element = mylist.pop(1)
print(f"通过pop方法取出元素后列表内容:{mylist}, 取出的元素是:{element}")

# 删除某元素在列表中的第一个匹配项
mylist = ["haha", "hehe", "xixi","hehe","haha"]
mylist.remove("haha")
print(f"通过remove方法移除元素后,列表的结果是:{mylist}")

# 清空列表
mylist.clear()
print(f"列表被清空了,结果是:{mylist}")
统计元素
# 统计列表内某元素的数量
mylist = ["haha", "hehe", "xixi","hehe","haha"]
count = mylist.count("hehe")
print(f"列表中itheima的数量是:{count}")

# 统计列表中全部的元素数量
mylist = ["haha", "hehe", "xixi","hehe","haha"]
count = len(mylist)
print(f"列表的元素数量总共有:{count}个")
列表的特点
  • 可以容纳多个数据(上线为2**63-1,9223372036854775807个)
  • 可以容纳不同类型的数据(混装)
  • 数据是有序存储的(有下标序号)
  • 允许重复数据存在
  • 可以修改(增加或删除元素等)
列表的遍历
while循环遍历列表
def list_while_func():
    mylist = ["hehehe", "hahaha", "xixixi"]
    # 定义一个变量,用来标记列表的下标
    index = 0       # 初始下标为0
    while index < len(mylist):
        element = mylist[index]
        print(f"列表的元素:{element}")
        index += 1
for循环遍历列表
def list_for_func():
    mylist = [1, 2, 3, 4, 5]
    # for 临时变量 in 数据容器:
    for element in mylist:
        print(f"列表的元素有:{element}")
元组

元组同列表一样,都是可以封装多个、不同类型的元素在内。
但最大的不同点在于:元组一旦定义完成,就不可修改

所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了

基本语法

定义元组字面量

(元素,元素,元素,……)

定义元组变量

变量名称 = (元素,元素,元素,……)

定义空元组

变量名称 = () //方式1

变量名称 = tuple() //方式2

相关操作

定义元组

# 定义元组
t1 = (1, "Hello", True)
t2 = ()
t3 = tuple()
print(f"t1的类型是:{type(t1)}, 内容是:{t1}")
print(f"t2的类型是:{type(t2)}, 内容是:{t2}")
print(f"t3的类型是:{type(t3)}, 内容是:{t3}")

# 定义单个元素的元素
t4 = ("hello", )
print(f"t4的类型是:{type(t4)}, t4的内容是:{t4}")

元组的嵌套

# 元组的嵌套
t5 = ( (1, 2, 3), (4, 5, 6) )
print(f"t5的类型是:{type(t5)}, 内容是:{t5}")

下标索引去取出内容

# 下标索引去取出内容
num = t5[1][2]
print(f"从嵌套元组中取出的数据是:{num}")

index查找方法

# index查找方法
t6 = ("哈哈", "呵呵", "嘻嘻")
index = t6.index("哈哈")
print(f"在元组t6中查找黑哈哈,的下标是:{index}")

count统计方法

# count统计方法
t7 = ("哈哈", "呵呵", "嘻嘻""哈哈""哈哈")
num = t7.count("哈哈")
print(f"在元组t7中统计哈哈的数量有:{num}个")

len函数统计元组元素数量

# len函数统计元组元素数量
t8 = ("哈哈", "呵呵", "嘻嘻""哈哈""哈哈")
num = len(t8)
print(f"t8元组中的元素有:{num}个")

元组的遍历

# 元组的遍历:while
index = 0
while index < len(t8):
    print(f"元组的元素有:{t8[index]}")
    # 至关重要
    index += 1

# 元组的遍历:for
for element in t8:
    print(f"2元组的元素有:{element}")

特殊情况

通常情况下,元组的内容是不能够被修改的,但是如果元组里面嵌套了list,list里面的元素可以被修改

# 定义一个元组
t8 = (1, 2, ["呵呵", "哈哈"])
print(f"t8的内容是:{t9}")
t9[2][0] = "嘿嘿"
t9[2][1] = "嘻嘻"
print(f"t8的内容是:{t9}")
元组的特点
  • 可以容纳多个数据
  • 可以容纳不同类型的数据(混装)
  • 数据是有序存储的(下标索引)
  • 允许重复数据存在
  • 不可以修改(增加或删除元素等)
  • 支持for循环

原文地址:https://blog.csdn.net/m0_70289867/article/details/142916565

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!