列表类型高级用法

举报
brucexiaogui 发表于 2022/08/20 23:16:37 2022/08/20
【摘要】 列表类型高级用法 1.概述 这篇文章总结日常开发使用列表类型的一些技巧,不断提升代码的可阅读性和优雅性。 2.列表常用操作 2.1.创建和读取列表元素 1.创建列表有两种方式 列表是一种有序的...

列表类型高级用法

1.概述

这篇文章总结日常开发使用列表类型的一些技巧,不断提升代码的可阅读性和优雅性。

2.列表常用操作

2.1.创建和读取列表元素

1.创建列表有两种方式

列表是一种有序的可变容器类型,创建列表类型有两种方式,字面量语法和list()内置函数。

# 使用[]字面量来创建列表,同时还可以为列表赋值。
number = [1, 2, 3, 4]
print(f'使用[]字面量来创建列表,输出列表值:{number}')
#输出结果
使用[]字面量来创建列表,输出列表值:[1, 2, 3, 4]

# 使用list()内置函数创建列表
one_list = list('1')
print(f'使用list()内置函数创建列表,输出列表值:{one_list}')
#输出结果
使用list()内置函数创建列表,输出列表值:['1']

# 注意内置函数只能把任意一个可迭代的对象转为列表,也就是说不可迭代的对象不能转为列表。
# 1是int类型,他不是一个可迭代对象,因此不能转为列表,运行后报类型错误信息:TypeError: 'int' object is not iterable
# int_list = list(1)

# 使用内置函数创建列表初始化多个值可以使用元组实现
many_list = list(('one','two'))
print(f'使用内置函数创建列表初始化多个值: {many_list}')
# 输出结果
使用内置函数创建列表初始化多个值: ['one', 'two']

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2.切片方式获取列表元素

# 切片方式获取列表元素
number = [1, 2, 3, 4, 5]
print('使用切片通过索引获取列表中对应的值:', number[0])

print('获取列表所有元素:', number[:])
print('获取列表指定开始元素到列表结束值:', number[0:])
print('获取列表开始到结束前一个值:', number[:-1])
print('获取列表最后一个值:', number[-1])

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.遍历列表同时获取下标

当你使用for循环遍历列表时,默认会获取列表中所有的成员。假如在遍历列表的同时,你想获取循环的下标,可以使用内置函数
enumerate()包裹列表对象。
enumerate()函数适用于任何“可迭代对象” , 因此它不光可以用于列表,还可以用于元组,字典,字符串等其他对象。

# 遍历时获取下标
numbers = [1, 2, 3]
for index, i in enumerate(numbers):
    print(f'列表下标:{index},列表值:{i}')

# enumberate有一个可选参数,可以指定下标初始值
for index, i in enumerate(numbers, start=10):
    print(f'列表下标:{index},列表值:{i}')

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.列表高级用法

当我们处理某个列表时,一般有两个目的:修改已有成员的值,根据规则剔除某些成员。

3.1.列表推导式

举个例子,有个列表存放了好多的数字,我要剔除里面所有奇数,并将所有数字乘以100。它的实现有两种方式,一个是传统方式,一个是推导式。

numbers = [1, 2, 3, 4, 5, 6, 7]
# 普通方式实现
def remove_odd_mul_100(number: list):
    duble_list = []
    for i in number:
        if i % 2 == 1:
            continue
        duble_list.append(i * 100)
    return duble_list
    
print('普通方法需要7行才能实现', remove_odd_mul_100(numbers))
# 输出值
普通方法需要7行才能实现 [200, 400, 600]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
numbers = [1, 2, 3, 4, 5, 6, 7]
l = [n * 100 for n in numbers if n % 2 == 0]
print(f'列表推导式一行就可以实现:{l}')
# 输出值
列表推导式一行就可以实现:[200, 400, 600]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

上面代码演示了两种方式实现剔除奇数,并将所有数字乘以100,相比传统方式,列表推导式把几类操作压缩到了一起,结果就是代码量更少,并维持了很高的可读性。列表推导式可以算得上处理列表数据的一把利器。

3.2.理解列表的可变性

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/126431130

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。