列表(2)

本文详细介绍了Python列表的相关操作,包括查找元素位置、判断成员资格、比较列表大小,重点讲解了如何删除列表中的重复元素,并探讨了列表推导式的用法和优势,旨在帮助读者更好地理解和运用Python列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表相关方法

# sum、max、min、count

numlist = [12, 13, 14, 15, 16, 90]

# sum:计算数字列表中所有元素的和

print(sum(numlist))
# max\min:求数字列表中最大或最小值

numlist = [12, 13, 14, 15, 16, 90]

print(max(numlist))

print(min(numlist))



# count:统计某个元素在列表中出现的次数

numlist = [12, 13, 14, 15, 16, 90]

print(numlist.count(1))
numList1 = [10, 30, 0, 100, 5, -100]

# sort:默认将列表从小到大排序,直接修改列表本身,sort返回值为空值

print('sort', numList1.sort())

print('sort', numList1)
numList1 = [10, 30, 0, 100, 5, -100]

# sorted:默认将列表从小到大排序,sorted不修改列表本身,返回排好序的列表结果

print('sorted', sorted(numList1))

print('sorted', numList1)
# reverse:将列表倒序输出,直接修改列表本身,返回值是None

numList1 = [10, 30, 0, 100, 5, -100]

print('reverse', numList1.reverse())

print('reverse', numList1)
# 切片将列表倒序

numList1 = [10, 30, 0, 100, 5, -100]

print(numList1[::-1])

# ---------------------------------------------------------

list1 = ['abcd', 1, 2, 3, 4, 1]

# index:查找某个元素出现的位置,从左向右找,找到此元素第一次出现的位置后直接停止查找

print(list1.index(1))

# index还可以直接执行从哪个位置开始查找

print(list1.index(1, list1.index(1) + 1))

# 思考:如果从list1中查找第二个1出现的位置:

# 1.先查找第一个1的位置

numIndex = list1.index(1)

# 2.将没有第一个1的列表切出来

list2 = list1[numIndex + 1:]

# 3.找新列表中的第一个1(相当于原列表中的第二个1),再将去掉的部分长度补回来

print(list2.index(1) + len(list1[:numIndex + 1]))

# 练习:1.获取列表中出现次数最多的元素。

# 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3],打印[3];nums = [1,2,2,1,3],打印[1,2]

# nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]

nums = [1, 2, 2, 1, 3]

# numCount判断次数

numCount = 0

# list1存放出现次数最大的元素

list1 = []

# 对所有元素遍历

for i in nums:

# 判断此元素的最大次数是不是大于原来的最大次数

# if分支判断列表中单一元素出现次数最大

    if nums.count(i) > numCount:

# 条件成立重新给numCount赋值

        numCount = nums.count(i)

# 清空列表再添加元素

        list1.clear()

        list1.append(i)

# elif分支判断多个元素同时出现次数最大

    elif nums.count(i) == numCount:

# 将所有情况考虑完在判断本元素是否添加过

        for x in list1:

            if i == x:

                break

        else:

            list1.append(i)

print(list1)

列表补充

# 一、成员运算:in、not in

# 判断某个元素在不在容器中

list1 = [1, 2, 3, 'abc', [1, 2, 3]]

print(1 in list1)

print([3] not in list1)

# 练习:1.获取列表中出现次数最多的元素。

# 例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3],打印[3];nums = [1,2,2,1,3],打印[1,2]

# nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
nums = [1, 2, 2, 1, 3]
# numCount判断次数
numCount = 0
# list1存放出现次数最大的元素
list1 = []
# 对所有元素遍历
for i in nums:
    # 判断此元素的最大次数是不是大于原来的最大次数
    # if分支判断列表中单一元素出现次数最大
    if nums.count(i) > numCount:
        # 条件成立重新给numCount赋值
        numCount = nums.count(i)
        # 清空列表再添加元素
        list1.clear()
        list1.append(i)
    # elif分支判断多个元素同时出现次数最大
    elif nums.count(i) == numCount:
        # 将所有情况考虑完在判断本元素是否添加过
        for x in list1:
            if i == x:
                break
        else:
            list1.append(i)

print(list1)

# 二、列表的比较大小

# 有序容器比较大小要求:

"""

a.两个容器的数据类型保持一致。

b.比较的是第一对不相同元素的大小,并且这两个元素的数据类型要一致

c.两个有序容器找不到第一对不相同元素,谁长谁大

"""

list2 = [1, 2, 4, [1, 2, 4]]

list3 = [1, 2, 4, [1, 2, 3]]

print(list3 > list2)

# 练习:

print([3] > [1, 2, 3]) # True

print([123] > [213]) # False

print([3] > [3, 2, 1]) # False

如何删除列表中重复元素

name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']

# 结果:['张三','李四','王五']

count = 0

for i in name_list:

    count += 1

    if name_list.count(i) > 1:

        # print(f'{i}是重复的')

        name_list.remove(i)

print(name_list)

print(count)

# 1.间接删除

print('----间接删除----')

name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']

names = []

for i in name_list:

    if i not in names:

        names.append(i)

print(names)

# 2.控制下标

print('----控制下标----')

name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']

index_ = 0

while index_ < len(name_list):

    if name_list.count(name_list[index_]) > 1:

        del name_list[index_]

    else:

        index_ += 1

print(name_list)

# 3.倒着删除

print('----倒着删除----')

name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']

for i in range(len(name_list) - 1, -1, -1):

    if name_list.count(name_list[i]) > 1:

        del name_list[i]

print(name_list)

列表推导式

# 列表推导式

# 一、作用:在创建列表时同时向列表中添加元素。

# 二、意义:

# 1.简化代码,提高代码的可读性。

# 2.在某些场景下可以使用列表推导式代替append。

# 三、性能比较:列表推导式性能 > append

# 四、语法一:[表达式 for 变量 in 容器]

# 表达式就是向列表中添加的元素

numList = []

for i in range(1, 101):

    numList.append(i)

print(numList)



numList_2 = [i for i in range(1, 101)]

print(numList_2)

# 语法二:[表达式 for 变量 in 容器 if 条件]

# for循环执行一次,如果条件成立,表达式的结果添加到列表中

numList3 = [i for i in range(0, 101) if i % 5 == 0]

print(numList3)

# 语法三:[表达式 for 变量1 in 容器1 for 变量2 in 容器2]

# 第一个for循环执行1次,第二个for循环执行N次,第二个for循环每执行一次,

# 表达式的结果就向列表中添加一次。

list1 = [f'{index} * {column} = {index * column}' for index in range(1, 10) for column in range(1, index + 1)]

print(list1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值