python列表的使用(五)

#一、sum、max、min、count

##1、sum

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

numlist1 = [12, 13, 14, 15, 16, 90]
print(sum(numlist1))

##2、max\min

求数字列表中最大或最少值

numlist = [12, 13, 14, 15, 16, 90]
print(max(numlist))
print(min(numlist))

##3、 conut

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

numlist1 = [12, 13, 14, 15, 16, 90]
print(numlist1.count(12))

##4、sort

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

numlist = [10, 30, 0, 100, 5, -90]
print('sort', numlist.sort())
print('sort', numlist)

##5、sorted

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

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

6、reverse

将列表倒序输出,直接修改列表本身,返回值是None

numList1 = [10, 30, 0, 100, 5, -90]
print('revere', numList1.reverse())
print('reverse', numList1)

二、切片将列表倒序

numList1 = [10, 30, 0, 100, 5, -90]
print(numList1[::-1])
list1 = ['abcd', 1, 2, 3, 4, 1]

##1、index

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

numList1 = [10, 30, 0, 100, 5, -90]
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]))

三、成员运算: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 and i not in list1:
        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

五、删除重复元素

1.间接删除

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值