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

外贸网站管理系统融水苗族自治县网站建设公司

外贸网站管理系统,融水苗族自治县网站建设公司,有哪些免费做外贸的网站,wordpress网站空白第一次见这样的语法 本人之前一直是Java工程师,最近接触了一个Python项目,第一次看到如下的代码: i sum(letter in target_arr for letter in source_arr)这条语句是计算source 与 target 数组中有几个单词是相同的。 当我第一眼看到这样…

第一次见这样的语法

本人之前一直是Java工程师,最近接触了一个Python项目,第一次看到如下的代码:

i = sum(letter in target_arr for letter in source_arr)

这条语句是计算source 与 target 数组中有几个单词是相同的。

当我第一眼看到这样的写法的时候,我的第一感觉是这样的。
还可以这样写?
我读书少,见识少,那是真不懂,于是赶紧孤狗一下,想要一探究竟。

原来这叫:生成器表达式

生成器表达式语法

生成器表达式(Generator Expression)是一种简洁高效地创建迭代器(Iterator)的方式。它类似于列表推导式(List Comprehension),但生成器表达式使用圆括号 () 而不是方括号 []。
生成器表达式的语法
(expression for item in iterable if condition)

  • expression:对每个元素进行的操作,生成迭代器中的值。

  • item:迭代变量,表示可迭代对象 iterable 中的每个元素。

  • iterable:可迭代对象,例如列表、元组、字符串等。

  • condition:可选的过滤条件,只有满足条件的元素才会被处理。
    生成器表达式的特点

  • 惰性求值: 生成器表达式不会一次性计算所有元素,而是按需生成。这样可以节省内存,特别是在处理大量数据时。

  • 返回迭代器: 生成器表达式返回一个迭代器对象,可以通过 for 循环或 next() 函数来遍历其中的元素。

  • 不可索引: 迭代器不支持索引操作,不能像列表那样通过下标访问元素。
    生成器表达式的应用

  • 过滤数据:
    even_numbers = (x for x in range(10) if x % 2 == 0) # 偶数

  • 映射数据:
    squares = (x**2 for x in range(5)) # 平方数

  • 组合数据:
    pairs = ((x, y) for x in [1, 2] for y in [3, 4]) # [(1, 3), (1, 4), (2, 3), (2, 4)]

  • 传递给函数:
    sum(x for x in range(100) if x % 3 == 0) # 3 的倍数之和

生成器表达式 vs. 列表推导式

特点生成器表达式列表推导式
返回值迭代器对象列表
惰性求值
内存占用
适用场景处理大量数据、只需遍历一次的数据需要多次访问数据、需要索引操作的数据

案例分析

回到我们的案例中来,我们根据语法解释对我们文章开始的案例进行拆解。

i = sum(letter in target_arr for letter in source_arr)

(expression for item in iterable if condition)对应关系

语法元素生成器表达式中的元素解释
expressionletter in target_arr对于每个 letter,判断它是否存在于target_arr 中,返回布尔值
itemletter迭代变量,表示 source_arr 中的每个元素
iterablesource_arr可迭代对象,源字符串数组
condition(无)此处没有过滤条件,所有 letter 都会被处理

总结

  • 生成器表达式会遍历 source_arr 中的每个 letter。
  • 对于每个 letter,计算 letter in target_arr,得到一个布尔值(True 或 False)。
  • sum 函数将这些布尔值相加,得到匹配的总次数,即 match_score。

注意事项

  • 这里没有使用 if condition 部分,表示不对元素进行过滤,所有元素都会参与计算。
  • 由于 Python 中 True 被视为 1,False 被视为 0,所以 sum 函数可以直接对布尔值求和。

希望这个详细的语法讲解能帮助您更好地理解生成器表达式的语法和用法!

关注我的公众号

欢迎大家关注、点赞、转发,一起交流软件开发、架构设计、云原生技术。
TXZQ聊IT技术与架构

http://www.yayakq.cn/news/42298/

相关文章:

  • 网站备案及管理的授权书深圳建网站培训机构
  • 企业做网站大概多少钱建网站卖阀门
  • 做百度网站要注意什么镇江网站制作价格
  • 无需注册网站模板下载代做施组 方案的网站
  • 深圳网站设计比较好的公司有哪些黄冈论坛遗爱网贴吧
  • 西部数码创建子网站太原新建火车站
  • 六安商务网站建设电话上海软件开发企业
  • 北京网站维护wordpress分类目录添加报错_标签不能添加
  • 信息发布网站怎么做商务网站建设平台
  • 做网站的服务器怎么选松阳县建设局网站
  • 最火爆的网页游戏seo网站优化推广教程
  • 网站建设预算项目wdcp网站搬家
  • 网站推广的必要性广东一站式网站建设费用
  • 网站扫码怎么做的网站备案和前置审批
  • 宜城做网站傻瓜式做网站哪个软件好
  • 银川企业网站设计制作南京app软件开发
  • 网上花店网站建设规划书注册一个网站需要多少钱
  • 深圳 网站开发公司股权变更要在工商局网站做吗
  • 揭阳网站制作教程兰州手机网站制作
  • 高密网站开发网页游戏大全双人
  • 网站是怎么建成的瑞金网站建设
  • 温州seo网站管理网站建设方案推广
  • 网站站内链接怎么做湘潭网站建设 皆来磐石网络
  • 开发一个网站需要哪些技术网站后缀是nl是哪个国家
  • 网站如何自己做seo中国建筑设计研究院官网
  • 东莞网站seo推广安徽有哪些市
  • 中国门户网站建设重要性江苏天宇建设集团网站
  • 重庆建设人才网站远安县住房和城乡建设局网站
  • 中国十大公司排行榜seo的方式有哪些
  • 苏州外贸企业网站建设wordpress显示作者