列表生成器

li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "PingFang SC Light"; color: #1a5568 }
li.li2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #435a66 }
li.li3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #0432ff }
li.li4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #000000 }
li.li5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #dc2354 }
li.li6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #008200 }
li.li7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #ff2f92 }
li.li8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #323333 }
li.li9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #008200 }
li.li10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #011480 }
li.li11 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" }
li.li12 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #000000 }
span.s1 { color: #000000 }
span.s2 { color: #323333 }
span.s3 { color: #ff2f92 }
span.s4 { color: #0432ff }
span.s5 { color: #dc2354 }
span.s6 { color: #009900 }
span.s7 { font: 12.0px "Courier New" }
span.s8 { font: 18.0px Menlo }
span.s9 { font: 18.0px Menlo; color: #011480 }
span.s10 { font: 12.0px "PingFang SC" }
span.s11 { color: #008200 }
span.s12 { font: 12.0px "PingFang SC"; color: #008200 }
ul.ul1 { list-style-type: disc }

  • xxx
    • 三元表达式
    • name="alex"
    • res="SB" if name == "alex" else "shuai"
    • print(res)
    • -------------
    • SB
    • 列表生成式
      • 语法
      • [expression for item1 in iterable1 if condition1
      • for item2 in iterable1 if condition2
      • for item3 in iterable1 if condition3
      • ...
      • for item1 in iterable1 if conditionN
      • ]
      • 事例一
      • egg_list=[]
      • for i in range(100):
      • egg_list.append("egg%s"%(i))
      • print(egg_list)
      • #上面简写
      • li = ["egg%s" %(i) for i in range(100)]
      • print(li)
      • #加条件
      • li = ["egg%s" %(i) for i in range(100) if i>50]
      • print(li)
      • 事例二
      • li = [1,2,3,4]
      • s = "hello"
      • obj = []
      • for num in li:
      • for str in s:
      • xx = (num,str)
      • obj.append(xx)
      • print(obj)
      • #上面简写
      • obj = [(num,str) for num in li for str in s]
      • print(obj)
      • #只把大于2的和底下拼接
      • obj = [(num,str) for num in li if num > 2 for str in s]
      • print(obj)
    • 列表生成器
      • 优点
        • 省内存  一次只产生一个值在内存里
      • 应用
        • 读取一个大文件的所有内容,并且处理行
        • f = open("a.txt")
        • #方式一:
        • li = []
        • for line in f:
        • line=line.strip()
        • li.append(line)
        • print(li)
        • #方式二: 列表生成式,还占内存
        • li=[line.strip() for line in f]
        • print(li)
        • #方式三: 转化为列表生成器
        • li=(line.strip() for line in f)
        • print(li)
        • #<generator object <genexpr> at 0x10217aa98>
        • print(list(li))
        • #[‘123‘, ‘123‘, ‘567‘, ‘fgg‘, ‘fghhhhh‘, ‘gdgdagfd‘, ‘dggdcbbb‘]
    • sum/for/list
      • sum/for/list 都是把可迭代对象变成迭代器,然后next取值,并且捕捉异常
      • 事例一
      • #列表是可迭代的, sum和 for/list 相同,把里面的参数变成一个迭代器,然后next取值
      • print(sum([1,2,3,4]))
      • num=(i for i in range(3))
      • print(sum(num))
      • 事例二
      • #事例 计算商品的价格,后两列相乘
      • #---- 文件a.txt
      • apple   10    3
      • tesla   1000  1
      • mac     3000  2
      • lenovo  200   3
      • chicken 10    3
      • money_l=[]
      • with open("a.txt") as f:
      • for line in f:
      • goods=line.split() #每一行变成列表,按空格分开
      • res=float(goods[-1])*float(goods[-2])
      • money_l.append(res)
      • print(money_l)
      • # [30.0, 1000.0, 6000.0, 600.0, 30.0]
      • print(sum(money_l))
      • # 7660.0
      • #简写
      • with open("a.txt") as f:
      • g=(float(line.split()[-1])*float(line.split()[-2]) for line in f)
      • print(sum(g))
时间: 2024-08-11 03:29:00

列表生成器的相关文章

python 列表生成器

python 列表生成器 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 如果python也这么写,那么真该看下python的基础教程了~ 但要注意的是,需要加一个[]来,否则会报错... 在上面的例子中,不仅可以嵌套for,甚至可以嵌套if语句 再看看,原来是什么样子 两个循环呢? 原来可能是这样的? 现在可以这样了!!!

python列表生成器与生成器

列表生成器是python内置的非常简单却非常强大的. 生成一个列表[1,2,3,4]可以用list(range(1,5)) 列表生成器的应用 如果上面的公式加上判断,就可以筛选出想要的结果,比如仅需要偶数的平方 使用多层循环 生成器 生成器与列表生成器的本质区别就是:一个已经生成数据了,使用时,如果数据过大,会产生内存溢出,而生成器是只有循环时,才会生成数据. 生成器与列表生成器的区别在于一个是[],一个是() 生成器书写 g=(x x ()) (g) 打印generator的方法是next(g

初学python随笔——列表生成器、生成器和迭代器

列表生成器 # 常见的是range()创建一个数字的列表 >>>[ x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # 后边也可以加上判断语句 >>>[ x*x for x in range(10) if x%2 == 0] [0, 4, 16, 36, 64] # 字符也可以这么玩 >>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX',

python_列表生成器/迭代器

列表生成式 例如 有一个列表 a =[2,3,4,5] 需要将列表都加上1 #第一种方法 for i in map(lambda i:i+1,a) #第二种方法 for index,i in enumerate(a): a[index] +=1 print(a) #第三种,简单列表生成式 a = [i+1 for i in a] print(a)#加个三元运算符a = [ i *2 if i>3 else i for i in a] 1.列表生成器_惰性运算 1.1 生成器 中括号就是列表生成式

切片器和列表生成器

使用切片器对list,tuple,或者string进行处理 >>> lis = [1,2,3,4,5,6,7,8,9,10] >>> lis[:5] [1, 2, 3, 4, 5] #取前5个 >>> lis[5:] [6, 7, 8, 9, 10] # 取后5个 >>> lis[::2] [1, 3, 5, 7, 9] #隔两个取一个 >>> lis[:] [1, 2, 3, 4, 5, 6, 7, 8, 9, 1

10.迭代器/生成器/协程函数/列表生成器

迭代器为什么要用迭代器?小结:生成器为什么要使用生成器,什么是生成器?如何创建一个生成器举个栗子:斐波拉契数列用yield返回结果的执行流程作业代码以及注释:协程函数面向过程编程作业以及代码注解:典型范例以及代码解析:列表生成式生成器表达式作业和练习 迭代器 为什么要用迭代器? 提供了一种不依赖索引的取值方式,使一些不具有索引属性的对象也能遍历输出 相比列表,迭代器的惰性计算更加节约内存. 但是它无法有针对性地指定取某个值,并且只能向后取值. >>> from collections i

Python列表生成器

本篇将介绍python生成器,更多内容请参考:python学习指南 前言 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅访问前面几个元素,那后面绝大多数占用的空间都白白浪费了. python生成器是用来代替"不一定能够使用全部元素的数组",等到使用某一元素时,才生成该元素,用来节省空间. 生成器创建方式 第一种: 在前面我们介绍python列表生成式,这里我们只需要把列表生

3 -14 迭代 和列表 生成器

列表生成式 执行效率高 简洁 a = []for i in range(5): a.append(i*2)print(a) 列表形式 [a * 2 for a in range(5)] ##列表形式 执行效率低 主要是先完成生成 再展现 占用内存 ##同样 可以传入函数 还执行 def aa(name): print('ni hao %s'%name ) print [a * 2 for a in range(5)] [aa(i) for i in range(5)] 生成器 :当你调用的时候还

Python迭代和列表生成器

使用for循环遍历list和tuple,这种遍历成为迭代 在如C语言中都是通过下标拿到值,for...in这种方式其实是相同的. 在函数的一节,这样说--->'求和函数sum(),sum(iterable,start),第一个参数必须是可以迭代对象,listtuple.'  可迭代对象为list,tuple 所以使用for遍历时,对象是要可以迭代的. 如何判断一个对象能不能迭代? Python的collections模块的Iterable可以判断是否可以迭代;   isinstance()函数用