正式的Python专栏第26篇,同学站住,别错过这个从0开始的文章!

前面学委分享了Tuple,谈到了Tuple跟列表list的关系。

这次我们转移视线到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 : helloa = [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 : hellodef compute_v1(list):sum = 0for x in list:sum += xlist = list + [sum]print("新地址:", id(list))return sumdef compute_v2(list):sum = 0for x in list:sum += xlist[0] = list[0] * 100return 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 : hellolist = [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 : hellomylist = [3, 3, 3]new_list = [x * 2 for x in mylist]
print("加倍过的list:", new_list)# 从这里开始展示tuple 转listtup = (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生成的元素构成新列表。

总结

list还有很多功能,我们下篇再继续看,这是tuple介绍的文章:https://juejin.cn/post/7025188119427153933

我们看到list 和 tuple 设计上有一定的对称性!

前者用’[]‘来包围元素,后则用’()'来包围元素, 操作上也很相似,甚至可以说非常一致!

对了,喜欢Python的朋友,请关注学委的 Python基础专栏 or Python入门到精通大专栏

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
欢迎关注微信,点赞支持收藏!

捋一捋Python中的List(上)相关推荐

  1. Python中import导入上一级目录模块及循环import问题的解决

    Python中import导入上一级目录模块及循环import问题的解决 参考文章: (1)Python中import导入上一级目录模块及循环import问题的解决 (2)https://www.cn ...

  2. python 单词发音-在python中的单词上拆分语音音频文件

    更简单的方法是使用pydub模块.最近的silent utilities增加了所有的重任,如设置沉默threahold,设置沉默长度.与提到的其他方法相比,显着简化了代码. 这是一个演示实现,灵感来自 ...

  3. python中用于绘制各种图形、标注文本_在python中的图形上绘制常量文本-问答-阿里云开发者社区-阿里云...

    我确定我可能在问一个愚蠢的问题,但找不到与我相同的问题. 我的朋友帮我写了一段代码,分析给出的数据并用趋势线将其绘制出来,我想在图的右上方添加一行文本,并在图上打印出其他内容,以表明它是什么文件(在代 ...

  4. Python中无法导入上一级目录下的包

    parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0,parentdir) ...

  5. python不等式编程_在Python中pandas列上的不等式

    我有一个pandas数据框,我想基于现有列和某些不等式创建一个新列.例如,让我们 df=pd.DataFrame({'a':[1,2,3,4,5,6,7],'b':[3,6,4,2,7,7,1]}) ...

  6. python自动化中附件如何上传

    python中附件的上传会使用pywinauto库来实现附件的上传 pywinauto的安装: 在dos窗口中执行pip install pywinauto来进行安装 文件的上传代码实现 import ...

  7. option:contains后面加变量_Python基础篇 -2:初识Python中的变量

    Python学习基础篇 -2 前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 第二篇 ...

  8. python filter函数_第九篇:Python中lambda、filter和map函数

    修修心养养性 世无常贵,事无常师,靠人不如靠己. 大纲 函数类型定义及特性 lambda函数定义及使用 filter函数定义及使用 map函数定义及使用 引入函数类型概念 函数类型定义:python中 ...

  9. 【python】在图片上绘画

    大家好,我是胡亥大魔王.今天介绍python中在图片上绘画 Pillow 的 ImageDraw 模块可以在图像上画线.矩形.圆形或其它简单形状. 绘制形状 下面介绍 ImageDraw 方法在图像上 ...

  10. 离散小波变换 python_用python中的“haar”小波对图像进行离散小波变换

    我试图在python中的图像上应用haar小波.这是代码from pywt import dwt2, idwt2 img = cv2.imread('xyz.png') cA, (cH, cV, cD ...

最新文章

  1. android accessibility 模拟键盘事件_H5 键盘兼容性小结
  2. 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法
  3. python3.7.1使用_使用python3和pytorch1.7.1运行dface
  4. 加薪——爱你在心口难开
  5. crack翻译成中文_crack是什么意思_crack在线翻译_英语_读音_用法_例句_海词词典
  6. 《从零开始学Swift》学习笔记(Day 59)——代码排版
  7. c语言代码re通常什么错误,求帮助 C语言realloc和free触发断点的问题
  8. VB调用摄像头录像,拍照,保存
  9. matlab设置中英文混合字体,word排版技巧:如何分别设置中英文混排的字体
  10. 视频学习前端的经验之谈
  11. OCA/OCP Oracle 数据库12c考试指南读书笔记:第11章: Subqueries and Set Operators
  12. 基于SpringBoot+Vue打造实验报告提交审核系统
  13. 通过深度学习实现安全帽佩戴的检测
  14. 千篇一律:“外挂”泛滥的网游公关写作
  15. 【云速建站】购买前的指导
  16. 伪睡眠排序(c++实现)
  17. MME中DNS服务器的作用,Internet上的域名解析服务(DNS)完成域名与IP地址之间的翻译。执行域名服务的服务器被称为D - 信管网...
  18. ES中BKD VS doc value
  19. 弹性盒中 flex详解及flex:1的用法解析
  20. 机器学习分类算法统一指标

热门文章

  1. Unity鼠标控制3D物体的移动、旋转、缩放
  2. Smart210学习记录-------内存初始化
  3. 阿里小蜜技术学习笔记--知识点整理
  4. 魅族手机flyme服务器不响应,魅族手机你绝对不知道的小技巧,魅族Flyme系统超实用!...
  5. crx文件怎么打开(谷歌crx文件怎么打开)
  6. 金融小知识 | Fama-Macbeth回归
  7. Cocos--开启物理
  8. 做软件开发学好算法的重要性
  9. 读书笔记 - 《上帝的跳蚤》
  10. 1168: PIPI的方格