详解Python中的List

 更新时间:2021年12月15日 16:19:43   作者:雷学委  
这篇文章主要为大家介绍了Python中的List,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

什么是list?

list 是一个序列!一串数据,这个串可以追加数据。

我们可以把它看成大型商场内,儿童游玩串串车,它就像一趟一趟车厢一样,可以挂上去(还能增加车厢)。

这样tuple(元组)就是焊死了的串串车!

在数据结构中,我们也学习过链表,某种程度上list就是python给出的一个实现。

它可以无限的存放数据,并通过下标(从0开始计数)获取特定位置的元素。

说这么多我们看看代码,感受一下:

list_a = [1, 2, 3]
list_b = ['hello','lei','学委', 666]

上面就是python中的list。

list 可以进行哪些操作呢?

我们前面tuple试过 + 和 *, 这些list能做吗?

答案是肯定的。

这里学委复制了前面tuple的代码进行更改:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : list_demo.py
# @Project : hello
a = [1, 2, 3]
print(a[0])
t = list(a)
print(t[0:2])
print(type(t[0:2]))
# <class 'list'>
t[0] = 22 # list可以修改对应下标的值!
a[0] = 22
mylist = list([a, [2, 3]])
print(mylist)
([22, 2, 3], [2, 3])
mylist[0][0] = 100 #这个可以!真可以!
print(mylist)
print(type(mylist))

动态长度参数传递

def show_info_v2(name, title, *info):
    print("姓名为:", name)
    print("职称为:", title)
    print("其他评价:", info)
show_info_v2('雷学委', '搬砖大师', "热爱技术", "热爱生活")

参数是否会被函数攥改?

我们看看下面的程序即可:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/24 11:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : func_call.py
# @Project : hello
def compute_v1(list):
    sum = 0
    for x in list:
        sum += x
    list = list + [sum]
    print("新地址:", id(list))
    return sum
def compute_v2(list):
    sum = 0
    for x in list:
        sum += x
    list[0] = list[0] * 100
    return sum
_list = [1, 2, 3, 4, 5]
print("调用计算函数v1之前:", _list)
print("调用计算函数v1之前内存地址:", id(_list))
print(compute_v1(_list))
print("调用计算函数v1之后:", _list)
print("调用计算函数v1之后内存地址:", id(_list))
_list = [1, 2, 3, 4, 5]
print("调用计算函数v2之前:", _list)
print("调用计算函数v2之前内存地址:", id(_list))
print(compute_v2(_list))
print("调用计算函数v2之后:", _list)
print("调用计算函数v2之后内存地址:", id(_list))

这是代码运行效果:

我们是可以修改list的元素的。

list 这种对象能执行啥操作?

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : list_demo2.py
# @Project : hello
list = [3, 3, 3]
# new_list = list - list #TypeError: unsupported operand type(s) for -: 'listle' and 'listle'
new_list = list + list
print(new_list)
# 学委还是很喜欢三连的,666
new_list = list * 3
print("三连开光过的list:", new_list)
# new_list = list / 3 # 不支持下次一定啊!
print("'666' in new_listle ? ", '666' in new_list)

下面是运行效果:

可以看到,我们之前在tuple中的操作list也一一支持了。

tuple 转list

直接上代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : list_demo2.py
# @Project : hello
mylist = [3, 3, 3]
new_list = [x * 2 for x in mylist]
print("加倍过的list:", new_list)
# 从这里开始展示tuple 转list
tup = (6, 6, 6)
new_list = list(tup)
print("把list转list: ", new_list)
if 6 in new_list:
    print("new_list has 6 !")

说这么多,好像漏了点啥?遍历列表还没有展示呢。

这个非常简单,随手就来

list = [ 1, 2, 3]
for x in list:
    do_on_value(x)

就这样,其实上面的展示代码涵盖了,但是没有特别说出来。

就是这一句 ‘new_list = [x * 2 for x in mylist]' , 直接遍历列表并把每个函数的值都x2生成的元素构成新列表。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Python实现删除文件但保留指定文件

    Python实现删除文件但保留指定文件

    这篇文章主要介绍了Python实现删除文件但保留指定文件,本文直接给出实现代码,并同时给出代码解释,需要的朋友可以参考下
    2015-06-06
  • python实现商品进销存管理系统

    python实现商品进销存管理系统

    这篇文章主要为大家详细介绍了python实现商品进销存管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python SQLAlchemy与数据库交互操作完整指南

    Python SQLAlchemy与数据库交互操作完整指南

    SQLAlchemy 是一个强大的 Python 库,用于数据库操作,无论是简单的数据存储还是复杂的数据管理,SQLAlchemy 都提供了多种方法来处理数据库,本文将全面介绍 SQLAlchemy的基本用法以及各种操作的示例代码
    2024-01-01
  • Jupyter Notebook如何导入python文件时的问题

    Jupyter Notebook如何导入python文件时的问题

    这篇文章主要介绍了Jupyter Notebook如何导入python文件时的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Python编程-封装,继承与多态

    Python编程-封装,继承与多态

    这篇文章主要介绍了Python编程-封装,继承与多态,文章主要目的解如何利用封装保护属性、掌握单继承和多继承、会重写和调用父类方法
    理解多态的使用等相关介绍,需要的朋友可以参考一下
    2022-01-01
  • python中实现迭代器(iterator)的方法示例

    python中实现迭代器(iterator)的方法示例

    我们经常需要遍历一个对象中的元素,在Python中这种功能是通过迭代器来实现的。下面这篇文章主要给大家介绍了python中实现迭代器(iterator)的方法示例,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • python实现多线程采集的2个代码例子

    python实现多线程采集的2个代码例子

    这篇文章主要介绍了python多线程采集代码例子,使用了Threading、Queue、MySQLdb等模块,需要的朋友可以参考下
    2014-07-07
  • 使用Python中PDB模块中的命令来调试Python代码的教程

    使用Python中PDB模块中的命令来调试Python代码的教程

    这篇文章主要介绍了使用Python中PDB模块中的命令来调试Python代码的教程,包括设置断点来修改代码等、对于Python团队项目工作有一定帮助,需要的朋友可以参考下
    2015-03-03
  • Python实现将不规范的英文名字首字母大写

    Python实现将不规范的英文名字首字母大写

    这篇文章给大家主要介绍的是利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。文中给出了三种解决方法,大家可以根据需要选择使用,感兴趣的朋友们下面来一起学习学习吧。
    2016-11-11
  • python如何重载模块实例解析

    python如何重载模块实例解析

    这篇文章主要介绍了python如何重载模块实例解析,涉及模块的概念,载入和重载的实例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论