Python-100 练习题 01 列表推导式

最近打算好好练习下 python,因此找到一个练习题网站,打算每周练习 3-5 题吧。

http://www.runoob.com/python/python-100-examples.html

另外,这个网站其实也还有 Python 的教程,从基础到高级的知识都有。


Example-1 三位数组合

题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

思路

最简单的方法,就是穷举法了,分别求出在百位、十位、个位上的数字,然后剔除出现重复数字的组合,剩余的就是答案了。

代码实现

直接代码实现如下:

def create_three_digits(number_start=1, number_end=4):'''给定指定数字范围(比如1到4),求可以组成多少个无重复的三位数:param number_start: 起始数字:param number_end: 结束数字:return: 返回数量,以及可能的三位数的列表'''count = 0result_list = list()for i in range(number_start, number_end + 1):for j in range(number_start, number_end + 1):for k in range(number_start, number_end + 1):if (i != j) and (i != k) and (j != k):count += 1result_list.append(str(i) + str(j) + str(k))return count, result_list

写得更加简便点,可以采用列表推导式:

def create_three_digits2(number_start=1, number_end=4):'''采用列表推导式实现:param number_start::param number_end::return:'''return [str(i) + str(j) + str(k) for i in range(number_start, number_end + 1) for j inrange(number_start, number_end + 1) for k inrange(number_start, number_end + 1) if (i != j) and (i != k) and (j != k)]

输出结果如下,总共有 24 种不同的排列组合。

valid count=24, and they are:
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432

当然,目前这种代码实现的时间复杂度是很高的,毕竟是三个for循环。如果有更好的解法,可以在评论留言,告诉我!

知识点复习–列表推导式

列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。

它的结构是在一个中括号里包含一个表达式,然后是一个 for 语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

用代码表示列表推导式如下:

variable = [out_exp for out_exp in input_list if out_exp == 2]

一个简明的例子如下:

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

那么,什么时候最适合用列表推导式呢?

其实是当你需要使用 for 循环来生成一个新列表。举个例子,你通常会这样做:

squared = []
for x in range(10):squared.append(x**2)

这时候,采用列表推导式最合适:

squared = [x**2 for x in range(10)]

源代码在:

https://github.com/ccc013/CodesNotes/blob/master/Python_100_examples/example1.py


参考文章:

  • 列表推导式(list comprehensions)

欢迎关注我的微信公众号–机器学习与计算机视觉,或者扫描下方的二维码,大家一起交流,学习和进步!

往期精彩推荐

学习笔记
  • 机器学习入门系列(1)–机器学习概览
  • [GAN学习系列] 初识GAN
  • [GAN学习系列2] GAN的起源
  • [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上)
数学学习笔记
  • 程序员的数学笔记1–进制转换
  • 程序员的数学笔记2–余数
  • 程序员的数学笔记3–迭代法
Github项目 & 资源教程推荐
  • [Github 项目推荐] 一个更好阅读和查找论文的网站
  • [资源分享] TensorFlow 官方中文版教程来了
  • 必读的AI和深度学习博客
  • [教程]一份简单易懂的 TensorFlow 教程
  • [资源]推荐一些Python书籍和教程,入门和进阶的都有!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx html解析插件,nginx配置信息的解析流程

nginx配置信息的解析流程2011年9月9日 1,744 次浏览请关注最新修正合订:这一系列的文章还是在09年写的,存在电脑里很久了,现在贴出来。顺序也不记得了,看到那个就发那个吧,最近都会发上来。欢迎转载,但请保…

机器学习数据集的获取和测试集的构建方法

这是机器学习入门系列(2)–如何构建一个完整的机器学习项目的第二篇 上一篇机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)介绍了开始一个机器学习项目需要明确的问题,比如当前任务属于有监督还是无监督学习问题,然后…

[资源推荐] 必须收藏的两个查找论文和代码实现的网站!

2019年第 13 篇文章,总第 37 篇文章无论是研究方向是 AI 方面的学生,或者是做机器学习方面的算法工程师,在掌握基础的机器学习相关知识后,都必须掌握搜索论文的技能,特别是研究或者工作领域方向的最新论文,…

dw html怎么导入视频,如何在dw中将视频插入

如何在dw中将视频插入电脑版Dreamweaver工具被很多人使用,用来编辑视频等,有的用户在使用该软件时,想要插入需要编辑的视频,但是却不知道如何插入,那么小编就来为大家介绍一下吧。具体如下:1. 第一步&#…

editplus注释快捷键

Tools->Preferences Tools-Keyboard-Edit-LineComment Line Uncomment为取消注释 转载于:https://www.cnblogs.com/yiwd/archive/2013/06/06/3121689.html

Python-100 练习题 02

2019年第 10 篇文章,总第 34 篇文章 练习题2 的网址: http://www.runoob.com/python/python-exercise-example2.html Example-2 企业发放奖金 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%&#xff…

特征工程之数据预处理(上)

机器学习入门系列(2)–如何构建一个完整的机器学习项目,第三篇! 该系列的前两篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法 分别介绍了确定项目终极目…

Python-100 练习题 03 完全平方数

本文大约 1600 字,阅读大约需要 8分钟 练习题 3 的网址: http://www.runoob.com/python/python-exercise-example3.html Example-3 完全平方数 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方…

特征工程之数据预处理(下)

机器学习入门系列(2)–如何构建一个完整的机器学习项目,第四篇! 该系列的前三篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

学计算机后悔转专业,大学转专业容易吗 会后悔吗

有很多的同学是非常的想知道,大学转专业容易吗,会后悔吗,小编整理了相关信息,希望会对大家有所帮助!大学转专业难不难能转专业的学校有两种,有一种是顶级学校,注重人才的培养,每年有…

特征工程之特征缩放特征编码

机器学习入门系列(2)–如何构建一个完整的机器学习项目,第五篇! 该系列的前四篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…