6 列表知识

本文详细介绍了Python列表的切片、组合、增删改查、排序等核心操作,包括列表的创建、索引与切片、通用操作、成员判断、长度处理、数值计算,以及列表的随机元素选择和排序算法。通过实例演示,展示了如何高效地处理和操作列表数据。
摘要由CSDN通过智能技术生成

6 列表知识

1.列表切片操作

list1 = [1,2,4,3,8]
num = list1[2]
print(num) 
print(list1[5])  #下标越界,引发IndexError, 需要自己确定不要越界

list1 = ['杨超越', '热巴', '佟丽娅', '杨幂', '赵丽颖', '刘亦菲', '黑嘉嘉', 100, 99.9]
print(list1[3:6])  # 将截取的结果再次保存在一个列表中  ['杨幂','赵丽颖','刘亦菲']
print(list1[-3:-1])  # ['黑嘉嘉', 100]
print(list1[::2])  # 步长 ['杨超越', '佟丽娅', '赵丽颖', '黑嘉嘉', 99.9]
print(list1[-5:-1:2])  # ['赵丽颖', '黑嘉嘉']
print(list1[-1::-1])  # [99.9, 100, '黑嘉嘉', '刘亦菲', '赵丽颖', '杨幂', '佟丽娅', '热巴', '杨超越']
print(list1[-1::-2])  # [99.9,'黑嘉嘉','赵丽颖','佟丽娅','杨超越']

2.列表的通用操作

#1.列表组合  将两个列表拼接为一个列表
#直接使用加号
list1 = [43,65,76,6]
list2 = [45,77,90,11,2,4,66]
print(list1 + list2)  #[43,65,76,6,45,77,90,11,2,4,66]  产生一个新列表

#2.列表重复
#直接使用乘号 列表内容重复指定遍数,产生一个新列表
print(list1 * 2)  # [43,65,76,6,43,65,76,6]

#3.成员操作
#成员运算符:in      not in
#运算的结果为布尔值
list3 = ["hello",False,189,"good"]
print(189 in list3) #True
print(180 not in list3)  #True

#4.列表长度
print(len(list1))

#5.列表最大值和最小值、求和
print(max(list1))
print(min(list1))
print(sum(list1))

#6.列表count,index函数
list1 = [8, 2, 15, 2, 7, 1, 2]
print(list1.count(2))   # 数列表里面2的个数 3
print(list1.index(15))  # 数列表里面15对应的下标 2

3.列表的增删改查

3.1 增加元素

# 1. list.append(obj) 在列表末尾添加新的元素,单一添加
list1 = [10,20,30]
list1.append(40) #可以是普通元素 
print(list1)     # [10,20,30,40] 
list1.append([50,60]) #也可以是其它列表、元组、字典、集合等对象
print(list1)     # [10,20,30,40,[50, 60]]

# 2. list.extend(obj)  在列表的末尾一次性追加另一个列表中的元素,可以多个添加
#obj不能是单个数值,可以是列表等可迭代对象
list1 = [10,20,30]
list1.extend([70,80])  #只是将元素添加到list1末尾
print(list1)	# [10, 20, 30, 70, 80]

list1 = [10,20,30]
list1.extend("999")  #只是将元素添加到l1末尾
print(list1)	# [10, 20, 30, '9', '9', '9']

# 3. list.insert(i,obj) 在指定下标i的位置插入一个新元素,原来的元素后移,不会覆盖
list1 = [10,20,30]
list1.insert(1,-20)
print(list1)    #[10, -20, 20, 30, 70, 80]
list1.insert(0,[1,2,3])
print(list1)   #[[1, 2, 3], 10, -20, 20, 30, 70, 80]

3.2 删除元素

#1. list.pop(i) 删除指定下标的元素,如果下标越界,会出现IndexError
list1 = [10, 20, 30]
value = list1.pop()   #删除最后一个元素,并返回该元素的值  30
print(value)    # 30
print(list1)    # [10, 20]
list1.pop(0)   # 删除下标为0的元素
print(list1)   # [20]

#2. list.remove(x) 删除列表中第一个值等于x的元素,删除的时候是从左向右找到第一个等于x的元素删除
list1 = [10, -20, 30]
list1.remove(-20)
print(list1)    # [10, 30]
# list1.remove(100) 如果列表中没有该值,会引起错误:ValueError

#3.按下标删除
list1 = [10, 20, 30]
del list1[0]
del list1[0:2]  # 删除第一个和第二个元素

#3 list.clear()  清空列表
list1 = [10, 20, 30]
list1.clear()
print(list1)  # []

3.3 修改元素

# 语法:列表名[索引] = 新的元素值

list1 = [10, 20, 30]
list1[2] = 888
print(list1)     # [10, 20, 888]

3.4 查找元素

#1. list.index(x,start,end) 在[start  end)范围内查找第一个等于x的元素的下标
#参数说明: x 要查找的元素; start,开始下标;end 结束下标,不包含结束下标
#返回值:如果有值等于x的元素,返回其下标,如果不存在值等于x的元素,会引发ValueError
list1 = [10, 20, 30]
print(list1.index(10))    # 0
print(list1.index(20, 0, 2))  # 1

#2 list.count(x) 查找列表中x出现的次数,如果没有x,返回0
list1 = [10, 20, 30, 10]
print(list1.count(10))   # 2
print(list1.count(99))   # 0 不存在99

4 遍历列表

列表的遍历就是访问列表的每一个元素,可以使用while循环和for-in循环。经常使用for-in循环遍历列表
for-in语法:

for 变量名 in 列表:
     语句 A
else:
     语句 B

说明:主要用于遍历序列【遍历:依次访问序列中的每一个元素,获取元素值】
工作原理:按照顺序获取列表中的每个元素,赋值给变量,再执行语句A,以此类推,直到列表中的元素全部获取为止,循环终止后执行else语句块。
- 不要在for-in循环中添加或删除元素


# 只能获取元素,不能得到元素的下标
for value in list1:
	print(value,end=' ')
	
# index表示下标,num表示元素值
# enumerate将列表变成一个索引序列,同时包含下标和数据
for index,num in enumerate(list1):
    print(index,num)

# 二维列表的遍历,循环嵌套
list1 = [[1, 2], [3, 4], [5, 6]]
for elem in list1:
    for value in elem:
        print(value, end=' ')
    print()

5 枚举

#index表示下标,num表示元素值
#enumerate将可迭代的容器变成一个索引序列,同时包含下标和数据
for index,num in enumerate(list1):
    print(index,num)

for index,num in enumerate(str1):
    print(index,num)

for index,num in enumerate(set1):
    print(index,num)

6 列表排序

#把列表元素逆序排列
list1 = [10, 20, 30, 10]
result = list1[:: -1]
print(result)     # [10, 30, 20, 10]

list1 = [10, 20, 30, 10]
list1.reverse()
print(list1)     # [10, 30, 20, 10]

list1 = [10, 20, 30, 10]
list1.sort()   # 升序排列
print(list1)   # [10, 10, 20, 30]

list1 = [10, 20, 30, 10]
list1.sort(reverse = True)    # 降序排列
print(list1)    # [30, 20, 10, 10]

list1 = [10, 20, 30, 10]
list2 = sorted(list1)
print(list2)     # [10, 10, 20, 30]

7.随机数

import random

函数名函数说明
choice(seq)返回一个序列(列表、元组,字符串)中返回一个随机元素
randrange(start,end,step)start 指定范围的起始值 包含本身 end 指定范围的结束值 不包含本身 step 步长
randint()返回一个随机整数
shuffle(seq)将序列元素随机排列(打乱顺序)

8.算法-----冒泡排序法

list1 = [8, 9, 15, 2, 7, 1, 50]
for i in range(len(list1)):
    for j in range(i+1, len(list1)):
        if list1[i] > list1[j]:
            list1[i], list1[j] = list1[j], list1[i]
print(list1)

9.列表作业

"""
1.写出一段Python代码实现删除一个list里面的重复元素

list1 = [22, 88, 33, 77, 7, 22, 12, 96, 88]
list2 = []
for i in range(len(list1)):
    if list1[i] not in list2:
        list2.append(list1[i])
print(list2)
"""


"""
2.键盘输入多个人名保存到一个列表中,如果里面有重复的则提示此姓名已经存在

list1 = []
while True:
    user_input = input("请输入姓名:")
    if user_input not in list1:
        list1.append(user_input)
    else:
        print("该用户已经存在")
"""


"""
3.两个列表[1,5,7,9]和[2,2,6,8]合并并排序 结果为:[1,2,2,3,6,7,8,9]

list1 = [1, 5, 7, 9]
list2 = [2, 2, 6, 8]
list3 = list1 + list2
list3.sort()
print(list3)    # [1, 2, 2, 5, 6, 7, 8, 9]
list1.extend(list2)
list1.sort()
print(list1)    # [1, 2, 2, 5, 6, 7, 8, 9]
"""


"""
4.[[6,3],[8,4,2],[5,6,1]] 转存到一个新的列表中并排序。结果为[1,2,3,4,5,6,6,8]

list1 = [[6, 3], [8, 4, 2], [5, 6, 1]]
list2 = []
for i in range(len(list1)):
    for j in range(len(list1[i])):
        list2.append(list1[i][j])
list2.sort()
print(list2)    # [1, 2, 3, 4, 5, 6, 6, 8]
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值