捋一捋Python中的List(上)
正式的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(上)相关推荐
- Python中import导入上一级目录模块及循环import问题的解决
Python中import导入上一级目录模块及循环import问题的解决 参考文章: (1)Python中import导入上一级目录模块及循环import问题的解决 (2)https://www.cn ...
- python 单词发音-在python中的单词上拆分语音音频文件
更简单的方法是使用pydub模块.最近的silent utilities增加了所有的重任,如设置沉默threahold,设置沉默长度.与提到的其他方法相比,显着简化了代码. 这是一个演示实现,灵感来自 ...
- python中用于绘制各种图形、标注文本_在python中的图形上绘制常量文本-问答-阿里云开发者社区-阿里云...
我确定我可能在问一个愚蠢的问题,但找不到与我相同的问题. 我的朋友帮我写了一段代码,分析给出的数据并用趋势线将其绘制出来,我想在图的右上方添加一行文本,并在图上打印出其他内容,以表明它是什么文件(在代 ...
- Python中无法导入上一级目录下的包
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0,parentdir) ...
- python不等式编程_在Python中pandas列上的不等式
我有一个pandas数据框,我想基于现有列和某些不等式创建一个新列.例如,让我们 df=pd.DataFrame({'a':[1,2,3,4,5,6,7],'b':[3,6,4,2,7,7,1]}) ...
- python自动化中附件如何上传
python中附件的上传会使用pywinauto库来实现附件的上传 pywinauto的安装: 在dos窗口中执行pip install pywinauto来进行安装 文件的上传代码实现 import ...
- option:contains后面加变量_Python基础篇 -2:初识Python中的变量
Python学习基础篇 -2 前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 第二篇 ...
- python filter函数_第九篇:Python中lambda、filter和map函数
修修心养养性 世无常贵,事无常师,靠人不如靠己. 大纲 函数类型定义及特性 lambda函数定义及使用 filter函数定义及使用 map函数定义及使用 引入函数类型概念 函数类型定义:python中 ...
- 【python】在图片上绘画
大家好,我是胡亥大魔王.今天介绍python中在图片上绘画 Pillow 的 ImageDraw 模块可以在图像上画线.矩形.圆形或其它简单形状. 绘制形状 下面介绍 ImageDraw 方法在图像上 ...
- 离散小波变换 python_用python中的“haar”小波对图像进行离散小波变换
我试图在python中的图像上应用haar小波.这是代码from pywt import dwt2, idwt2 img = cv2.imread('xyz.png') cA, (cH, cV, cD ...
最新文章
- android accessibility 模拟键盘事件_H5 键盘兼容性小结
- 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法
- python3.7.1使用_使用python3和pytorch1.7.1运行dface
- 加薪——爱你在心口难开
- crack翻译成中文_crack是什么意思_crack在线翻译_英语_读音_用法_例句_海词词典
- 《从零开始学Swift》学习笔记(Day 59)——代码排版
- c语言代码re通常什么错误,求帮助 C语言realloc和free触发断点的问题
- VB调用摄像头录像,拍照,保存
- matlab设置中英文混合字体,word排版技巧:如何分别设置中英文混排的字体
- 视频学习前端的经验之谈
- OCA/OCP Oracle 数据库12c考试指南读书笔记:第11章: Subqueries and Set Operators
- 基于SpringBoot+Vue打造实验报告提交审核系统
- 通过深度学习实现安全帽佩戴的检测
- 千篇一律:“外挂”泛滥的网游公关写作
- 【云速建站】购买前的指导
- 伪睡眠排序(c++实现)
- MME中DNS服务器的作用,Internet上的域名解析服务(DNS)完成域名与IP地址之间的翻译。执行域名服务的服务器被称为D - 信管网...
- ES中BKD VS doc value
- 弹性盒中 flex详解及flex:1的用法解析
- 机器学习分类算法统一指标