当前位置: 首页 > news >正文

python 列表生成式

列表生成式

列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表

# 去除偶数
hh=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]

#从做往右读就行
print([item2 for item1 in hh for item2 in item1 if item2%2==0])

hhh=[]
for item1 in hh:
    for item2 in item1:
        if item2%2==0:
            hhh.append(item2)
print(hhh)

lambda函数

匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。
lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。

lambda [arg1 [,arg2,.....argn]]:expression

冒号左边是参数,右边是表达式

lambda x, y: x*y			# 函数输入是x和y,输出是它们的积x*y

map() 函数

map(function, iterable, ...)
# 提供两个列表,将其相同索引位置的列表元素进行相加
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
# 计算平方数
def square(x):
	return x ** 2
#遍历列表中的每一个元素,并将其放入函数中生成一个新的迭代器
hh=map(square, [1,2,3,4,5])
print(hh)
for i in hh:
    print(i)

reduce() 函数

reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

def add(x, y):            
	return x + y

reduce(add, [1, 3, 5, 7, 9])
from functools import reduce

def fn(x, y):
	return x * 10 + y

reduce(fn, [1, 3, 5, 7, 9])

sorted() 函数

sorted() 函数对所有可迭代的对象进行排序操作
sort 与 sorted 区别:
sort 是 list 的一个方法,而 sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

sorted(iterable[, cmp[, key[, reverse]]])

iterable  ----> 可迭代对象。
cmp       ----> 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key        ----> 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse  ----> 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
L=[('b',2),('a',1),('c',3),('d',4)]
# 利用参数 cmp 排序
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
# 结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
#简单排序
a = [5,7,6,3,4,1,2]
b = sorted(a)       # 使用sorted,保留原列表,不改变列表a的值

filter() 函数

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到迭代器中。

ewlist = filter(lambda x: x % 3 == 0, [1, 2, 3])
print(list(newlist))

相关文章:

  • 政府网站安全如何做/网站怎么优化自己免费
  • 欧美个人网站/优化seo软件
  • wordpress amp插件/郑州做网站
  • 东莞网站建设分享seo/北京网站建设公司大全
  • 青冈网站建设/企业营销策划论文
  • 郑州企业网站制作怎么做/汉中网站seo
  • MongoDB面试题整理-四年经验
  • 机器学习笔记之深度玻尔兹曼机(一)玻尔兹曼机系列整体介绍
  • 【Linux】探索缓冲区的概念 | Git 三板斧 | 实现简易进度条
  • JS语言基础
  • 详解分布式系统核心概念——CAP、CP和AP
  • 【JavaEE初阶】第二节.进程篇
  • dockerfile笔记
  • 解决: 您目前无法访问 因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常
  • 【程序员陪你过大年】html+css+js 实现春节动态烟花特效及服务器部署
  • 后台生成4位图像验证码
  • 移动端App自动化之触屏操作自动化
  • requests页面常用操作(post、put、get、head、patch、delete方法)