从零开始的python学习Day5

列表的相关方法、列表推导式、列表的比较
摘要由CSDN通过智能技术生成

Day5知识回顾

列表的相关方法

sum,max,min,count

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

  2. max / min:求数字列表中最大值最小值

  3. count:统计某个元素在列表中出现的次数,如果这个数据在列表中没有则出现0而不报错

列表排序

sort,sorted,reverse,index
  1. sort:默认将列表从小到大排序,修改列表本身,返回值为None

具体应用方法:

numlist1 = [3213,43214,3245,4565,8567,876]
numlist.sort()
print(numlist1)

输出结果:
None
[876, 3213, 3245, 4565, 8567, 43214]

  1. sorted:默认将列表从小到大排序,sorted不修改列表本身,返回排序好的方法

具体应用方法:

print(sorted(numlist))

输出结果:

[876, 3213, 3245, 4565, 8567, 43214]

  1. reverse:将列表倒序输出,直接修改列表本身,返回值是None
print(numlist1.reverse())
print(numlist1)

输出结果:
None
[876, 8567, 4565, 3245, 43214, 3213]

  1. index:查找某个元素出现的位置,从左向右找,找到元素后直接停止查找,找到元素出现的第一次位置直接停止查找,index还可以直接执行从哪个位置开始查找。

思考:查找list1中第二个3出现的位置

list1 = ['sdf','313','1324',3,42,3,4,32,3]
numindex = list1.index(3)#返回第一个3的下标:3
list2=list1[numindex + 1:]#切片[42,3,4,32,3]
print(list2.index(3) + len(list1[:numindex+1]))

列表的比较

"""
a,两容器数据类型保持一致
b,比较的是第一对不相同的元素的大小,并且这两个数据类型要一致
c,两个有序容器找不到第一对不相同的元素,谁长谁大
"""
print([3] > [1,2,3])#True
print([123]>[213])#False
print([3]>[3,2,1])#False

如何删除列表中的重复元素

练习:

  1. 方法1:间接删除
print("__________________间接删除_________________")
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三']
names = []
for i in name_list:
    if i not in names:
        names.append(i)
print(names)
  1. 方法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)
  1. 方法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)

列表推导式

  • 作用:再创建列表时同时向列表中添加元素
  • 意义:简化代码,提高代码的可读性。在某些场景下,可以使用列表推导式代替append。
  • 性能比较:列表推导式的性能 > append

语法:

  1. 语法1:[表达式 for 变量 in 容器]

    • for表达式就是向列表中添加的代码
    """
    将100以内的数输入到列表中
    """
    numlist2 = [i for i in range(1,101)]
    print(numlist2)
    
  2. 语法2:[表达式 for 变量 in 容器 if 条件]

    • for循环执行一次,如果条件成立,表达式添加到列表中
    """
    将能整除5的数输入列表中
    """
    numlist3 = [i for i in range(1,101) if i % 5 ==0]
    print(numlist3)
    
  3. 语法3:[表达式 for 变量1 in 容器1 for 变量2 in 容器2]

    • 第一个for循环执行一次,第二个for循环执行n次,第二个for循环,每执行一次,表达式的结果就向列表中添加一次

练习
用列表推导式循环输出1–5数字三遍

print('\n'.join(
  [','.join( ['%d' % (j) for j in range(1,6)])for i in range(3) if True ]))

输出结果:
在这里插入图片描述
用列表推导式打印九九乘法表

#外中括号表示外层for循环,内中括号表示内循环。
#join关键字可以向列表中添加指定的字符(分隔符)等等。
print('\n'.join(
    [' '.join(['%2d *%2d = %2d' % (j+1, (i), ((j+1) * i)) for j in range(i )]) for i in range(1, 10)]))

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值