首页 > 编程知识 正文

python函数(python表达式是什么)

时间:2023-05-04 07:44:58 阅读:79871 作者:4891

# #参加春天的新创作大会#

前言

列表导出式列表构建的快捷方式。 可以使用生成器表达式创建任何其他类型的序列。 从python2.7开始,列表导出和生成器表达式的概念被应用于词典,因此进行了词典导出。 今后也会遇到集合导出(这里不讨论)。 因此,想要更好地学习词典的导出时,需要充分掌握列表的导出和生成器公式。

为什么要用推导公式? 推导公式的应用提高代码的可读性。 下面,我们一起验证一下为什么“可读性强”。

列表推导

示例1 :将信函字符串转换为unicode代码位的列表

in : letter=' abcdefghr '

in :编码=

in [3] :福利特尔3360

.代码. append (奇数(字母) )

.

in :编码

out[4]:[97、98、99、100、101、102、103、104和114]示例2 :将信函字符串转换为unicode的代码位列表的另一种写法(

in : letter=' abcdefghr '

in [2] :编码=[用于文献中的文献]

in :编码

out[3]:[97、98、99、100、101、102、103、104和114]在上述两个示例中,最终达到的效果是一致的。 但是,显然例2的可读性更高。 大家可能会认为,今后将不再使用列表导出的for循环。 其实不然。 通常,原则上只通过导出列表来创建新列表,并尽可能缩短。 如果从列表导出的代码超过两行,则可能需要考虑是否用for循环重写。 实际上,没有必要自己掌握什么时候使用什么,或者必须使用什么,怎么使用的硬性规定。

比起导出列表,

生成器表达式

生成器表达式更适合初始化元组、数组或其他序列类型。 因为生成器表达式符合迭代程序协议,并且是一个单独的生产要素,而不是在生成完整的列表后将列表传递给函数。 生成器表达式与列表导出的语法基本相同,不同之处在于列表导出使用方括号,生成器表达式使用圆括号。

示例1 :使用生成器表达式初始化元组和数组

# #元组初始化

in : letter=' abcdefghr '

in [2] : tuple=tuple (用于letter的letter有序) )。

in : tuple

out [3] : (97、98、99、100、101、102、103、104和114 )

# #数组初始化

n [4] :导入阵列

in [5] :阵列(I ),其中包括字母在字母上) ) ) ) ) ) ) ) ) ) ) )到) ) ) ) ) ) ) ) ) ) ) ) ) )而言。)

如果out [5] :阵列(' I ',[ 97,98,99,100,101,102,103,104,114 ] )生成器表达式是函数调用的唯一参数,则必须添加括号

array的构建方法有两个参数,第一个参数决定了数字的存储方式。 与初始化元组不同,这里有两个参数,因此必须将生成器表达式括在括号中。

字典推导

词典的导出可以根据以键值对为要素的可重复的对象来构建词典。

下面的例子说明了可以利用词典的导出将充满元组的列表变成两个不同的词典。

创建包含成对数据的data_name列表。 该列表直接用于后续词典的构建方法中,如下所示:

in [1] :数据名称=[ (1561,' wwdhs ',) 1560,' tmdmla ',1559,'哭泣的姐姐',1557,' xhdnm ',

(1556,) hhdyf ),) 1555,)鳗鱼的世界),) 1554,)哭泣的大姐),) 1551,) jlddc ),

(1550,)耐黑色的康乃馨),) 1548,) hhdyf ) ]

in :数据名称

Out[2]: [(1561, 'wwdhs'), (1560, 'tmdmla'), (1559, '哭泣的御姐'), (1557, 'xhdnm'), (1556, 'hhdyf'), (1555, '鳗鱼世界'), (1554, '哭泣的御姐'), (1551, 'jlddc'), (1550, '怕黑的康乃馨'), (1548, 'hhdyf')]

更改data_name列表中数据对的左右位置,姓名为键,编号为值。具体如下:

In [3]: name_code={name:code for code,name in data_name} In [4]: name_code Out[4]: {'wwdhs': 1561, 'tmdmla': 1560, '哭泣的御姐': 1554, 'xhdnm': 1557, 'hhdyf': 1548, '鳗鱼世界': 1555, 'jlddc': 1551, '怕黑的康乃馨': 1550}

同上面的操作相反,用编号为键,姓名为值,并且过滤掉编号大于或等于1560的姓名。具体如下:

In [5]: {code:name for name,code in name_code.items() if code>=1560} Out[5]: {1561: 'wwdhs', 1560: 'tmdmla'}

如果对列表推导对概念以及书写方式已熟知,那么理解字典推导相对容易些。如果对列表推导还不熟知,那么现在应该是掌握它导时候了,因为字典推导表达形式在其他数据类型中慢慢得以体现。同时,使用列表推导和字典推导可以实现对数据的过滤效果。

「python好书推荐」

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 利用Python进行数据分析(原书第2版) ¥92.4 购买

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。