python基础篇-列表与元组

一、列表(list)

  1. 列表的定义

Python中的列表(List)是一种有序、可变的序列类型,可以使用方括号来表示一个列表,其中各个元素之间使用逗号分隔。列表中的每个元素可以是不同类型的数据,如整数、字符串、浮点数等。

#下面的代码定义了一个包含多个元素的列表
my_list = [1, 2, 'hello', 3.5, [4, 5]]

  1. 使用列表的注意事项

使用列表时,有以下几个注意事项:

  1. 空列表:空列表可以使用 [] 或 list()。如果列表中没有元素,则使用 len() 函数会返回 0。

  1. 列表元素访问:使用索引进行列表元素访问,从 0 开始计数。可以通过 my_list[index] 的方式来访问或更改列表中的元素值,其中 index 是对应元素的位置。

  1. 列表的常用操作

  1. 创建列表

#创建列表
my_list = [1, 2, 3.5, '牡丹', [4, 5]]

  1. 添加元素

  1. 使用append()方法向列表末尾添加一个元素

my_list = [1, 3.5, '牡丹', [4, 5]]
# 使用append()方法向列表末尾添加一个元素
my_list.append(["樱花"])
print(my_list)    #输出结果:[1, 3.5, '牡丹', [4, 5], ['樱花']]
  1. 使用insert()方法在指定位置插入一个元素。

方法:insert(索引号,[值])

my_list = [1, 3.5, '牡丹', [4, 5]]
#使用insert()方法在指定位置插入一个元素。
my_list.insert(1,["芍药"])      
print(my_list)   #输出结果:[1, ['芍药'], 3.5, '牡丹', [4, 5]]
  1. 使用extend()方法将一个可迭代对象中的元素添加到列表末尾。

my_list = [1, 3.5, '牡丹', [4, 5]]
#使用extend()方法将一个可迭代对象中的元素添加到列表末尾。
my_list.extend(["桃花"])
print(my_list)     #输出结果:[1, 3.5, '牡丹', [4, 5], '桃花']

  1. 访问元素

  1. 通过下标(index):使用索引值,即元素在序列中的位置,从0开始编号。可以使用正数或负数访问元素,其中正数从左到右访问,负数从右到左访问。

#通过下标(index)
my_list = [1, 3.5, '牡丹', [4, 5]]
print(my_list[1])    # 输出结果:3.5
print(my_list[-1])   # 输出结果:[4, 5]
  1. 通过切片(slice):使用切片访问多个元素,指定一个区间(左闭右开)来获取序列的一部分。

#通过切片(slice)
my_list = [1, 3.5, '牡丹', [4, 5]]
print(my_list[1:3])    # 输出结果:[3.5, '牡丹']
print(my_list[1:4:1])   # 输出结果:[3.5, '牡丹', [4, 5]]
print(my_list[:3])   # 输出结果:[1, 3.5, '牡丹']
print(my_list[2:])   # 输出结果:['牡丹', [4, 5]]

  1. 修改元素

  1. 通过下标(index):使用索引值,即元素在序列中的位置,从0开始编号,直接重新赋值为新值即可。

my_list = [1, 3.5, '牡丹', [4, 5]]
#通过下标(index)
my_list[1]="芍药"
print(my_list)   #输出结果:[1, '芍药', '牡丹', [4, 5]]
  1. 通过切片(slice):使用切片访问多个元素并进行修改,指定一个区间(左闭右开)来获取序列的一部分,并将新内容通过切片重新赋值给该区间。

my_list = [1, 3.5, '牡丹', [4, 5]]
#通过切片(slice
my_list[1:3]=["芍药","樱花"]
print(my_list)   #输出结果:[1, '芍药', '樱花', [4, 5]]

  1. 删除元素

  1. 使用del语句删除指定位置的元素

#del
my_list = [1, 3.5, '牡丹', [4, 5]]
del my_list[1]
print(my_list)    #输出结果:[1, '牡丹', [4, 5]]
  1. 使用pop()方法弹出并返回指定位置的元素(默认弹出最后一个元素),也可以不返回弹出的元素

#pop()
my_list = [1, 3.5, '牡丹', [4, 5]]
my_list.pop(0)
print(my_list)    #输出结果:[3.5, '牡丹', [4, 5]]
  1. 使用remove()方法删除指定值的元素:

  • 前提:不知道列表中要删除中的值所处的位置(索引号),只知道要删除的元素的值。

  • 注意:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中多次出现,就需要使用循环来判断是否删除了所有这样的值。

# #remove()
my_list = [1, 3.5, '牡丹', [4, 5]]
my_list.remove("牡丹")
print(my_list)    #输出结果:[1, 3.5, [4, 5]]

  1. 删除列表中的重复元素

#元素去重
my_list = [1,1, 2, 2,3, 2, 4, 3]
# 使用set()函数去重,并将去重后的集合转换为列表格式
list_1 = list(set(my_list))
print(list_1) # 输出结果:[1, 2, 3, 4]

  1. 删除列表中的所有元素(清空列表)

my_list = [1, 2, 3, 4, 5]
# 删除所有元素
my_list.clear()
print(my_list)   #输出结果:[]

  1. 列表的长度

使用函数 len() 来获取列表的长度。

my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print(length) # 输出 5

  1. 列表的求和

使用函数 sum() 来求列表中元素的和。

my_list = [1, 2, 3, 4, 5]
total = sum(my_list)
print(total) # 输出 15

  1. 列表的排序

  1. 用 sorted() 函数排序,返回新列表

sorted() 函数会返回一个新列表,并将原列表保持不变。它可以接受一个可迭代对象作为参数,并返回一个新的、已经排序好的列表。sorted() 函数可以通过 reverse 参数来控制升序或降序排列。

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 升序排序
new_list = sorted(my_list)   
print(new_list)              # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 降序排序
new_list = sorted(my_list, reverse=True)  
print(new_list)              # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

  1. 用 sort() 方法排序,原列表改变

sort() 方法是在原列表上进行排序,因此不需要返回一个新列表。sort() 方法也可以通过 reverse 参数来控制升序或降序排列。

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 升序排序
my_list.sort()              
print(my_list)              # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 降序排序
my_list.sort(reverse=True)  
print(my_list)              # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

  1. 判断元素是否存在列表中

可以使用 in 关键字或者 not in 关键字来判断元素是否存在于列表中。

# 判断一个元素是否存在于列表中
my_list = [1, 2, 3, 4, 5]

if 3 in my_list:
    print("3 存在于列表 my_list 中")
else:
    print("3 不存在于列表 my_list 中")    #输出结果:3 存在于列表 my_list 中


#判断一个元素是否不存在于列表中
my_list = [1, 2, 3, 4, 5]

if 6 not in my_list:
    print("6 不存在于列表 my_list 中")
else:

  1. 复制列表

  1. 使用切片操作符 [:] 来复制整个列表

# 使用切片操作符
a = [1, 2, 3]
b = a[:]
print(b)    #输出结果:[1, 2, 3]
  1. 通过 list() 函数将原始列表作为参数来创建一个新的列表

# 使用 list() 函数
a = [1, 2, 3]
c = list(a)
print(c)    #输出结果:[1, 2, 3]
  1. 使用列表的 copy() 方法来复制一个列表

# 使用 copy() 方法
a = [1, 2, 3]
d = a.copy()
print(d)    #输出结果:[1, 2, 3]

  1. 遍历列表的值

# 遍历切片
list=['a','b','c','d','e','f','g']
for list_1 in list[:3]:   #结束索引不包含
    print(list_1)
输出结果:
a
b
c

二、元组

  1. 元组的定义

元组用于表示一个不可变的有序序列,其元素可以是任意类型的数据,包括数字、字符串、列表、元组等。元组与列表类似,不同之处在于元组的元素不能修改,因此元组是不可变的。元组可以使用小括号 () 来表示,也可以直接将多个值用逗号 , 隔开,Python 会自动将其封装成元组。

#使用小括号表示元组
a=(1,2,3,4)
print(type(a))    #输出结果:<class 'tuple'>

# 直接用逗号隔开多个值表示元组
b=1,2,3
print(type(b))    #输出结果:<class 'tuple'>

  1. 使用元组的注意事项

  1. 空元组的表示方式:如果需要定义一个空元组,可以使用 () 或 tuple() 语句来实现。

  1. 定义单个元素的元组:当元组中只有一个元素时,需要在元素后面加上逗号 ,,否则 Python 将会把这个元素视为其他类型数据的值。

  1. 元组的常用操作

  1. 创建元组

# 创建元组:使用小括号 () 或者直接用逗号 , 把多个值拼接成元组。
tup1 = (1,2,3)
tup11 = 'a', 'b', 'c'
print(tup1)     #输出结果:(1, 2, 3)
print(tup11)    #输出结果:(1, 2, 3)

  1. 访问元组中的元素

# 访问元组中的元素:通过下标索引访问元组中的元素,下标从 0 开始。
tup2 = ('a', 'b', 'c')
print(tup2[0])     #输出结果: 'a'

  1. 元组的切片

# 元组的切片操作:可以通过下标对元组进行切片,获取指定区间内的元素。
tup3= ('a', 'b', 'c', 'd', 'e')
print(tup3[1:4])      #输出结果:('b', 'c', 'd')

  1. 元组的索引

元组的索引从 0 开始,依次递增。使用下标索引的方式来获取元组中指定位置的值

tup = ('a', 'b', 'c')
print(tup[0]) # 输出 'a'

  1. 元组的长度

# 计算元组长度:使用 len() 函数计算元组中元素的个数。
tup = (1, 2, 3, 4, 5)
print(len(tup))      #输出结果:5

  1. 在元组中查找元素

# 在元组中查找元素:使用 in 操作符检查元素是否存在于元组中。
tup = ('a', 'b', 'c')
if 'a' in tup:
    print('存在')
else:
    print('不存在')         #输出结果:存在

  1. 遍历元组中的所有值

像列表一样,也可以使用for循环来遍历元组中的所有值。

tup = (1, 2, 3, 4, 5)
for item in tup:
    print(item)
输出结果:
1
2
3
4
5

三、列表转成元组

#列表转成元组
a=[1,2,3,4]
b=tuple(a)
print(type(b))    #输出结果:<class 'tuple'>

四、列表和元组的异同

相同:都是序列(Sequence)类型,用于存储一系列有序的数据

区别:

  1. 可变性:列表是可变(Mutable)的,可以直接对其进行修改,例如添加、删除、修改元素等操作。而元组是不可变(Immutable)的,一旦创建就不能再修改其中的元素。因此,如果需要对其中的元素进行修改,一般需要将元组转换成列表,执行完操作后再转换回来。

  1. 语法:在语法上,列表使用方括号 [] 来创建和访问,而元组则使用小括号 ()。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值