06

大家好,我是营长,上期营长分享了“List和 tuple的13个经典使用案列”的一部分,这期营长接着为大家分享。

本期分享内容:List和 tuple的13个经典使用案列(完结篇)

这期分享营长邀请的是zglg (某大厂算法工程师)和Alicia (美国顶尖学府 AI 博士后)两位为我们分享Python全栈精通之路。

作者有话说

很多人问为什么要写这个专栏?因为我也有过那段“自学” Python 的迷茫时期,所以深知一个好的系统学习规划和老师讲解,是能够达到事半功倍省下我们程序员更多青春的关键。

别的老师在介绍知识点时都会说“这东西是什么”,但我不想这样做。

我觉得“为什么这东西是这样”或者“在什么场景适应什么需求有什么好处才会用这东西”,反而更能让你们对知识本身会有更深刻的理解。

06

List和tuple的13个基本案列 (完结篇)

昨日分享了13个案例的前六点,今日营长继续为大家分享剩下的7点。

昨日漏学的小伙伴可戳这查看详情哦——List和 tuple的13个经典使用案列”

7. 求表头

返回列表的第一个元素,注意列表为空时,返回 None。

通过此例,学会使用 if 和 else 的这种简洁表达。

In [18]: def head(lst):

...:     return lst[0] if len(lst) > 0 else None

调用 head:

In [19]: print(head([]))

...: print(head([3, 4, 1]))

None

3

8. 求表尾

求列表的最后一个元素,同样列表为空时,返回 None。

In [20]: def tail(lst):

...:     return lst[-1] if len(lst) > 0 else None

调用 tail:

In [21]: print(tail([]))

‍    ...: print(tail([3, 4, 1]))

None

1

9. 打印乘法表

外层循环一次,print(),换行;内层循环一次,打印一个等式。

In [26]: def mul_table():

...:     for i in range(1, 10):

...:         for j in range(1, i + 1):

...:             print(str(j) + str("*") + str(i)+"=" + str(i*j), end="\t")

...:         print() # 打印一个换行

调用 mul_table:

In [27]: mul_table()

1*1=1

1*2=2   2*2=4

1*3=3   2*3=6   3*3=9

1*4=4   2*4=8   3*4=12  4*4=16

1*5=5   2*5=10  3*5=15  4*5=20  5*5=25

1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36

1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49

1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64

1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

10. 元素对

· t[:-1]:原列表切掉最后一个元素;

· t[1:]:原列表切掉第一个元素;

· zip(iter1, iter2):实现 iter1 和 iter2 的对应索引处的元素拼接。

In [32]: list(zip([1,2],[2,3]))

Out[32]: [(1, 2), (2, 3)]

理解上面,元素组对的实现就不难理解:

In [28]: def pair(t):

...:     return list(zip(t[:-1],t[1:])) # 生成相邻元素对

调用 pair:

In [29]: pair([1,2,3])

Out[29]: [(1, 2), (2, 3)]

In [30]: pair(range(10))

Out[30]: [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]

11. 样本抽样

内置 random 模块中,有一个 sample 函数,实现“抽样”功能。

下面例子从 100 个样本中,随机抽样 10 个。

· 首先,使用列表生成式,创建长度为 100 的列表 lst;

· 然后,sample 抽样 10 个样本。

In [33]: from random import randint,sample

...: lst = [randint(0,50) for _ in range(100)] # randint 生成随机整数;

...: print(lst[:5])

...: lst_sample = sample(lst,10) # sample 从 lst 中抽样 10 个元素

...: print(lst_sample)

[0, 38, 31, 33, 43]

[9, 43, 31, 22, 31, 30, 14, 47, 14, 1]

12. 重洗数据集

内置 random 中的 shuffle 函数,能冲洗数据。

值得注意,shuffle 是对输入列表就地(in place)洗牌,节省存储空间。

In [34]: from random import shuffle

...: lst = [randint(0,50) for _ in range(100)]

...: shuffle(lst) # 重洗数据

...: print(lst[:5])

[22, 49, 34, 9, 38]

13. 生成满足均匀分布的坐标点

random 模块,uniform(a,b) 生成 [a,b) 内的一个随机数。

如下,借助列表生成式,生成 100 个均匀分布的坐标点。

from random import uniform

x, y = [i for i in range(100)], [

round(uniform(0, 10), 2) for _ in range(100)]

print(y)

[3.09, 9.02, 1.87, 1.43, 4.25, 9.66, 9.11, 0.12, 3.3, 2.35, 0.15, 0.34, 6.47, 9.47, 8.63, 8.41, 6.02, 2.87, 5.93, 2.29, 8.61, 4.71, 6.87, 7.42, 0.53, 3.04, 6.02, 7.51, 0.3, 0.27, 6.6, 7.48, 9.96, 8.05, 0.09, 1.07, 6.77, 6.98, 5.96, 2.1, 0.32, 9.12, 2.11, 0.45, 9.74, 3.33, 9.72, 8.4, 0.77, 9.75, 4.61, 5.37, 1.59, 7.8, 0.88, 1.2, 8.21, 8.06, 8.97, 2.02, 8.32, 8.56, 5.74, 5.03, 0.65, 5.84, 3.67, 5.38, 8.13, 2.0, 0.75, 1.92, 5.27, 0.65, 8.29, 9.28, 3.28, 3.6, 1.76, 4.44, 1.15, 9.89, 1.65, 6.75, 0.62, 4.97, 7.03, 6.48, 8.14, 1.8, 7.41, 7.06, 3.73, 5.37, 7.17, 6.94, 3.13, 0.29, 4.36, 6.17]

使用 PyEcharts 绘图,版本 1.6.2。

注意,运行以下代码至少保证版本要在 1.0 以上:

from pyecharts.charts import Scatter

import pyecharts.options as opts

from random import uniform

def draw_uniform_points():

x, y = [i for i in range(100)], [

round(uniform(0, 10), 2) for _ in range(100)]

print(y)

c = (

Scatter()

.add_xaxis(x)

.add_yaxis('y', y)

)

c.render()

draw_uniform_points()

得到结果如下,变量 y 取值满足均匀分布。

执行程序,会在 py 文件所在目录生成一个 HTML 文件,打开会查看到下图。

小结

今天与大家一起学习 13 个使用列表和元组的案例。

涉及到切片操作、key 函数、zip 连接等 Python 中最常用的知识点。

希望大家手动敲敲代码,找找 Python 编码的乐趣,为后面的学习打下坚实的基础。

今日内容有get吗,欢迎各位留言讨论!

下期预告:dict 和 set 基本操作、字典视图等 6 个方面详解总结

以上专栏均来自CSDN GitChat专栏《Python全栈60天精通之路》

作者zglgAlicia,专栏详情可识别下方二维码查看哦

五一假期特惠

仅限4月30日-5月5日
限时特价 59元
识别二维码立即订阅

每日一课 | List和 tuple的13个经典使用案列(完结篇)相关推荐

  1. linux 如何让.开头的文件不隐藏_每日一课 | Linux:如何gzip文件夹

    整理 | Python大本营在Linux上, gzip无法压缩文件夹,它仅用于压缩单个文件.要压缩文件夹,您应该使用tar + gzip,它是tar -z.注意 $ tar --help -z, -j ...

  2. 每日一课 | 在Python中获取列表的长度和大小

    Python是一种非常具有表现力的语言,它提供了不同的结构来简化开发人员的工作.该列表是python提供的最受欢迎的数据结构之一.在常规工作流程中,我们在列表中添加元素或从列表中删除元素.但是在这种浮 ...

  3. 深入浅出CChart 每日一课——快乐高四第五十六课 絮絮叨叨,岁月杀猪刀之FAQ

    CChart发布已有多年,QQ交流群也成立了很久.在和网友的交流中,发行了CChart的很多问题,也进行了很多改进和完善. 网友们接触CChart的时间有早有晚,不同的网友经常在群里或私聊的时候提出的 ...

  4. 每日一课 | Python基础

    整理 | Jane 出品 | Python大本营 初次接触 Python 到底怎么学?安装.配置完 Python 环境和工具后,很多同学都表示在一段时间内好像学习都没有成果,没有进步.其实,从基础知识 ...

  5. 每日好课分享【精品课程】 每日好课分享

    每日好课分享[精品课程] 每日好课分享 腾讯课堂链接 https://ke.qq.com/course/460096?tuin=55f6c5a5 网易云课堂 https://study.163.com ...

  6. 每日一课 | Python数据可视化—多样化的图像

    07 大家好,我是营长,昨天营长分享了数据科学"的知识点:,不清楚的小伙伴可戳这????每日一课|Python数据可视化-如何分区和绘图 本期营长接着为大家分享Python数据可视化相关内容 ...

  7. 每日一课 | Python综合案例实战

    使用python学习内容实现一个在线学员信息管理操作 数据临时存放在变量列表中 实现学生信息的添加,删除和查询操作. 初识界面: 添加学员信息 浏览学员信息 删除学员信息 退出操作 参考程序代码如下: ...

  8. 【极客学院每日1课 】Java入门与常用技巧

    2019独角兽企业重金招聘Python工程师标准>>> Java是Android开发者必学的基础编程语言.你的基础怎么样? 遥想当年,小乔还未出嫁,小编在大学里面,啃书本,听教授在课 ...

  9. python将列表转换为字符串_每日一课 | Python将文件读入列表

    读取日志文件的Python示例,一行一行地进入列表. # With '\n', ['1\n', '2\n', '3'] with open('/www/logs/server.log') as f: ...

最新文章

  1. 利用JDBC连接Oracle数据库
  2. 全球 MEDC 2007 举行日期
  3. 什么是 Time to live TTL
  4. 使用SwingWorker的Java Swing中的多线程
  5. 监督学习 | ID3 决策树原理及Python实现
  6. 阿里云 linux 挂载数据盘
  7. VBNET学习笔记---MS VBnet数据库访问技术,概念,介绍,发展历程.
  8. 牛客小白月赛8: I. 路灯孤影(区间DP)
  9. 数字电路与逻辑设计习题
  10. kindle mysql_MySQL(二) MySQL基本操作
  11. linux系统禁用声卡,Linux如何设置声卡
  12. ps显示计算机内存不足怎么办,PS常见问题——内存不足,解决办法!
  13. 6天面试、斩获6家硅谷巨头Offer,我是如何做到的?
  14. 三菱FX系列PLC简单总结
  15. 快捷餐饮之店家后台系统管理实现
  16. 空格折叠(幽灵折叠)
  17. 利用cpolar远程登录公司OA系统
  18. 非科班出身这么理解货币乘数
  19. matlab bsxfun memory,matlab函数bsxfun浅谈(转载)
  20. 彩色流程图怎么做?这样的操作方法你尝试过吗?

热门文章

  1. iPhone11基带增强!天线重新设计,室内信号都能轻松满格
  2. 2022企业邮箱怎么设置自动回复和签名,总结如何设置手机邮箱的方法
  3. java操作mongodb查询总数_java操作mongodb——查询数据
  4. Unity资源的卸载
  5. 股票九转交易买入程序实现
  6. 人过三十,心智成熟的八大标志,哪条不到位,咬着牙悄悄改
  7. iOS音视频播放指南(二)
  8. 小米计算机使用技巧,小米手机你不知道的五个小技巧,非常实用
  9. python 在险价值_家庭医疗保险花费分析 - Python
  10. 阻止邮件内容“裸奔”