python for循环

Python函数编程——列表生成式和生成器

六月ゝ 毕业季﹏ 提交于 2020-03-06 02:50:21
Python函数编程——列表生成式和生成器 一、列表生成式 现在有个需求,现有列表a= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ,要求你把列表里的每个值加1,你怎么实现? 1、二逼青年版 生成一个新列表b,遍历列表a,把每个值加1后存在b里,最后再把a=b, 这样二逼的原因不言而喻,生成了新列表,浪费了内存空间。 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = [] >>> for i in a:b.append(i+1) ... >>> b [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a = b >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2、普通青年版 a = [1,3,4,6,7,7,8,9,11] for index,i in enumerate(a): a[index] +=1 print(a) 3、略屌青年版 >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a = map(lambda x:x+1, a) >>> a >>> for i in a:print(i) ... 3 5 7 9 11 4、装逼青年版 >>> a = [i+1 for i in range(10)] >>> a [1, 2, 3, 4,

Python—生成器

≯℡__Kan透↙ 提交于 2020-03-06 02:26:27
列表生成式 现在有个需求,看列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ,要求你把列表里的每个值加1,你怎么实现? 1 >>> a = [i+1 for i in range(10)] 2 >>> a 3 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 这样的写法就叫做列表生成式 生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator 来源: https://www.cnblogs.com/zivli/p/9539184.html

python迭代器与iter()函数实例教程

我与影子孤独终老i 提交于 2020-03-05 14:24:07
python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑: 脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。 迭代器是在版本 2.2 被加入 Python 的,它为类序列对象提供了一个类序列的接口。 序列是一组数据结构,你可以利用它们的索引从0 开始一直“迭代“ 到序列的最后一个条目。 用“计数“的方法迭代序列是很简单的。 Python 的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。 迭代器用起来很灵巧,可以迭代不是序列但表现出序列行为的对象,例如字典的 key,一个文件的行等。 当使用循环迭代一个对象条目时,几乎不可能分辨出它是迭代器还是序列。不必去关注这些,因为 Python 让它象一个序列那样操作。 如何迭代? 迭代器就是有一个 next() 方法的对象,而不是通过索引来计数。当你或是一个循环机制(例如 for 语句)需要下一个项时,调用迭代器的 next() 方法就可以获得它。条目全部取出后,会引发一个 StopIteration 异常,这并不表示错误发生,只是告诉外部调用者,迭代完成. 不过,迭代器也有一些限制。例如你不能向后移动,不能回到开始,也不能复制一个迭代器.如果你要再次(或者是同时)迭代同个对象

python for/range练习

不羁岁月 提交于 2020-03-05 13:50:45
1.利用for循环和range打印出下面列表的索引。 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] for i in range(len((li))): print(i) 2.利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。 lis = [] for i in range(2,100,2): lis.append(i) print(lis) 3.利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中。 lis = [] for i in range(50): if i%3 == 0: lis.append(i) print(lis) 4.利用for循环和range从100~1,倒序打印。 for i in range(100,0,-1): print(i) 5.利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。 lis = [] for i in range(100,9,-2): lis.append(i) for r in lis: if r%4 != 0: lis

python期末版二版-习题题库

自闭症网瘾萝莉.ら 提交于 2020-03-05 13:27:28
《Python程序设计》题库 一、 填空题 1、 Python安装扩展库常用的是_工具。(pip) 2、 Python标准库math中用来计算平方根的函数是____。(sqrt) 3、 Python程序文件扩展名主要有__和两种,其中后者常用于GUI程序。(py、pyw) 4、 Python源代码程序编译后的文件扩展名为___。(pyc) 5、 使用pip工具升级科学计算扩展库numpy的完整命令是_______。(pip install –upgrade numpy) 6、 使用pip工具查看当前已安装的Python扩展库的完整命令是___。(pip list) 7、 在IDLE交互模式中浏览上一条语句的快捷键是____。(Alt+P) 8、 使用pip工具查看当前已安装Python扩展库列表的完整命令是___。(pip list) 9、 在Python中____表示空类型。(None) 10、 列表、元组、字符串是Python的___(有序?无序)序列。(有序) 11、 查看变量类型的Python内置函数是______。(type()) 12、 查看变量内存地址的Python内置函数是_______。(id()) 13、 以3为实部4为虚部,Python复数的表达形式为_或__。(3+4j、3+4J) 14、 Python运算符中用来计算整商的是___。(//) 15、

记录遇到的Python陷阱和注意点

一个人想着一个人 提交于 2020-03-05 13:24:02
最近使用Python的过程中遇到了一些坑,例如用 datetime.datetime.now() 这个可变对象作为函数的默认参数,模块循环依赖等等。 在此记录一下,方便以后查询和补充。 避免可变对象作为默认参数 在使用函数的过程中,经常会涉及默认参数。在Python中,当使用可变对象作为默认参数的时候,就可能产生非预期的结果。 下面看一个例子: def append_item(a = 1, b = []): b.append(a) print b append_item(a=1) append_item(a=3) append_item(a=5) 结果为: [1] [1, 3] [1, 3, 5] 从结果中可以看到,当后面两次调用 append_item 函数的时候,函数参数b并没有被初始化为 [] ,而是保持了前面函数调用的值。 之所以得到这个结果,是因为在Python中, 一个函数参数的默认值,仅仅在该函数定义的时候,被初始化一次 。 下面看一个例子证明Python的这个特性: class Test(object): def __init__(self): print("Init Test") def arg_init(a, b = Test()): print(a) arg_init(1) arg_init(3) arg_init(5) 结果为: Init Test 1 3

python break和continue

风流意气都作罢 提交于 2020-03-05 10:02:27
for m in range(3): if m == 0: for n in range(3): if n == 1: print(m,n) continue print(n) if n == 1: print(m,n)       if n == 2:         print(m,n) if m == 1: for x in range(3): if x == 1: print(m,x) break print(n) if x == 2: print(m,x) else: print(m,n,x) D:\untitled\venv\Scripts\python.exe D:/untitled/bogls/jia2.py 0 10 2 1 1 1 2 1 Process finished with exit code 0 认识python中的中断,先来看两句话,break:跳出整个for循环,continue:跳出本次循环(continue很少会用)。python代码是从上往下执行的,循环会往复执行直到循环结束或者中断。 然后分析上面的代码 当’m==0‘时进入‘for n in range(3)’循环,当‘n==0’时循环里的if语句中三个条件都不满足,循环继续进行‘n==1’满足条件执行if语句输出‘0,1’,然后执行continue跳出本次循环(没有执行下一个输出语句

python语言基础笔记

扶醉桌前 提交于 2020-03-05 07:52:47
二进制数据则由bytes类型表示 python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。 b'\xe4\xb8\xad\xe6\x96\x87' \x表示16进制 ______________________________________________________________________________ #coding=gbk var=input("请输入十六进制数:") #16进制转化二进制 b=bin(int(var,16)) print(b[2:]) _____________________________________________________________________________________ print(format(ord('周'),'b')) 中文转化8进制再转二进制; string:UNICODE unicode类型名词叫:string unicode是文本显示用,根据不同的软件可以encoding不同的软件显示编码。 bytes: bytes bytes类型名词叫:bytes python3编码最大的改变: 把字节串与字符串彻底分开!bytes为存储字节码编码方式 (中文显示unicode,encode--utf8-

力扣第15题 三数之和 python

吃可爱长大的小学妹 提交于 2020-03-04 22:05:59
思路: 这个题有点难,如果暴力算法一定超时,然后采用了双指针,但是考虑方面有点多,要先排序,再排除一些不可能的情况,再讨论去重(分别在k,j,i)再进行定k,同时i和j进行双指针算法,i进行i++,j进行j– 组织以后:先顺序排序,再从头到尾,循环取一个值(k),作为三数之一。 循环内,另外两个数(i和j),分别从左边最近的(i),以及最后的(j)开始取值,求和。 和为0,则加入结果数组,同时两数向内分别移动,并判断去重。 和大于0,则后面的数前移,同样判断去重。 和小于0,则前面的数后移,同样判断去重。 最后,递增第一个数下标的同时,判断去重。 class Solution : def threeSum ( self , nums : List [ int ] ) - > List [ List [ int ] ] : nums . sort ( ) result , k = [ ] , 0 for k in range ( len ( nums ) - 2 ) : if nums [ k ] > 0 : break if k > 0and nums [ k ] == nums [ k - 1 ] : continue i , j = k + 1 , len ( nums ) - 1 while i < j : s = nums [ k ] + nums [ i ] + nums

人生苦短,我学Python——一个计算机本科生的Python学习之路(八)

折月煮酒 提交于 2020-03-04 20:08:22
离某一天又近了一步!↖( ω )↗ Python高级数据类型 Python中的数据类型可以分为 数字型 和 非数字型 。数字型包括整型(int),浮点型(float),布尔型(bool),复数型(complex);非数字型包括列表(list),元组(tuple),字典(dictionary),字符串(str)。数字型变量大家应该都很熟悉,下面我就具体介绍一下非数字型变量。 列表 Python中的列表其实非常像C语言中的数组,长相也差不多一个样子,但是Python的列表的功能要比C语言中的数组多,也更加的方便。Python列表的数据项不需要是相同的数据类型,创建一个列表就是下面这个样子: list1 = [ "google" , "messi" , 666 , 99.9 ] list2 = [ 1 , 2 , 3 , 4 , 5 ] list3 = [ "a" , "b" , "c" ] 列表的基本使用 列表的一些基本方法有 取值和取索引 list[n]:取列表中第n-1个元素的值 list.index(“列表元素”):返回列表元素的位置 修改数据 list[n]=“修改后的元素” 增加数据 append()方法:向列表末尾追加数据 insert()方法:向列表指定位置插入数据 extend()方法:向列表末尾再插入一个新列表 删除数据 remove()方法:从列表中删除指定的元素