日期:2023-03-24 18:58:34 来源:博客园
当我们开始学习 Python 时,我们通常会优先编写能够完成工作的代码,而不会关注代码的可读性以及代码的简洁性和效率。
确切来说,这是完全没有问题的,但是有一些方法可以在不忽略可读性的情况下缩短我们的 Python 代码。单行 Python 代码,只要我们能够正确的使用它们,那么我们将能够很好的兼顾简洁和可读性!
(资料图片)
下面任何学习 Python 的同学都应该知道的 9 条单行代码,我们一起来看看吧~
if-else 语句是我们在 Python 中学习的第一批语句之一,它用于执行给定条件的真假部分。
我们经常使用这个语句,但是你知道它可以被简化为一行代码吗?在很多情况下,我们完全可以把 if 和 else 语句放在在同一行中
age = 18valid = "You"re an adult"invalid = "You"re NOT an adult"print(valid) if age >= 18 else print(invalid)
列表是一种常用的数据存储方式,但你知道只需一行代码即可基于现有列表创建新列表吗?
没错,它被称为列表推导,它提供了一种基于现有列表的值创建列表的简短语法,列表推导比用于制作列表的函数和循环更紧凑。
下面是语法
[expression for item in list]
我们来看个例子
words = ["united states", "brazil", "united kingdom"]capitalized = [word.title() for word in words]>>> capitalized["United States", "Brazil", "United Kingdom"]
上面的代码确实看起来更好!但是要记住,我们应该保持代码对用户友好,因此不推荐在一行代码中编写很长的列表推导式。
与列表推导类似,Python 中也有字典推导。字典推导提供了一种简短的语法,可以在一行代码中创建字典。
下面是语法
{key: value for key, value in iterable}
来个栗子
dict_numbers = {x:x*x for x in range(1,6) }>>> dict_numbers{1: 1, 2: 4, 3: 9, 4: 16, 5:25}
有多种方法可以合并字典,我们可以使用 update() 方法、merge() 运算符,甚至是字典推导。
但是有一种更简单的方法可以在 Python 中合并字典,就是通过使用解包运算符 **
。我们只需要在我们希望组合的每个字典前面添加 **
并使用额外的字典来存储输出即可
dict_1 = {"a": 1, "b": 2}dict_2 = {"c": 3, "d": 4}merged_dict = {**dict_1, **dict_2}>>> merged_dict{"a": 1, "b": 2, "c": 3, "d": 4}
在我们将 **
运算符应用于字典后,两者都将扩展其内容并合并以创建一个新字典。
有时我们需要确保列表中没有任何重复值,尽管没有一种方法可以轻松进行处理,但我们可以使用set来消除重复项。
set是一种无序集合,其中每个元素都是唯一的。这意味着如果我们将列表变成一个集合,就可以快速删除重复项,。然后我们只需要将集合再次转换为列表即可。
让我们看一个基本的例子来掌握它
numbers = [1,1,1,2,2,3,4,5,6,7,7,8,9,9,9]>>> list(set(numbers))[1, 2, 3, 4, 5, 6, 7, 8, 9]
每当我们需要分配多个变量时,可以在 Python 中将它们分配在一行中,而不是逐行分配(即使是来自不同类型的变量)。
a, b, c = 1, "abc", True>>> a1>>> b"abc">>> cTrue
很简洁吧,但是需要注意的是,我们分配的变量越多,将它们分配给错误值的机会就越大,双刃剑啊~
假设我们想从列表中过滤一些值,可以使用许多方法来做到这一点,但有一种简单的方法是使用 filter() 函数。
这是过滤器函数的语法:
filter(function, iterable)
如果我们在过滤器函数中添加一个 lambda 函数,效果会更好!
让我们通过从列表中过滤偶数来掌握它
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:725638078my_list = [10, 11, 12, 13, 14, 15]>>> list(filter(lambda x: x%2 == 0, my_list ))[10, 12, 14]
对字典进行排序并不像对列表进行排序那样简单——我们不能像使用列表那样使用 sort() 或 sorted() 对字典进行排序。
但是我们可以将字典推导与 sorted() 函数结合起来,通过键对字典进行排序。
在下面的示例中,我们将按产品名称对字典进行排序。
product_prices = {"Z": 9.99, "Y": 9.99, "X": 9.99}>>{key:product_prices[key] for key in sorted(product_prices.keys())}{"X": 9.99, "Y": 9.99, "Z": 9.99}
类似于按键对字典进行排序,我们需要使用 sorted() 函数和列表推导来按值对字典进行排序,但是我们还需要添加一个 lambda 函数。
首先让我们看看 sorted() 函数的所有参数
sorted(iterable, key=None, reverse=False)
要按值对字典进行排序,我们需要使用 key 参数。此参数接受一个函数,该函数用作排序比较的键。在这里,我们可以使用 lambda 函数使事情变得更简单。
假设我们有一个包含人口值的字典,我们想按值对其进行排序
population = {"USA":329.5, "Brazil": 212.6, "UK": 67.2}>>> sorted(population.items(), key=lambda x:x[1])[("UK", 67.2), ("Brazil", 212.6), ("USA", 329.5)]
现在唯一剩下的就是添加字典推导了
population = {"USA":329.5, "Brazil": 212.6, "UK": 67.2}>>> {k:v for k, v in sorted(population.items(), key=lambda x:x[1])}{"UK": 67.2, "Brazil": 212.6, "USA": 329.5}
标签:
下一篇: 最后一页
全球聚焦:9个都要了解的单行Python代码
北京酒店预订系统_北京酒店预订艺龙|全球今日讯
全球信息:今日上海有几座跨江大桥。
鼠标不能动了要如何修好_新消息
秀强股份(300160)3月24日主力资金净买入410.50万元
热点评!玩家搜集信息拼凑《GTA6》地图:比洛圣都要大3倍
新生儿宝宝黄疸会哭吗?_日常护理需要注意什么?
世界资讯:五部门:禁止上市公司、外商投资义务教育阶段学科类培训机构
通山县12岁女孩患暴发性心肌炎 武汉医生昼夜抢救 孩子转危为安
奥迪q5l质量口碑怎么样_奥迪q5l质量怎么样
棒球帽mlb是什么牌子 环球视点
好玩的pc游戏排行 焦点观察
天天资讯:启明信息(002232):3月23日北向资金增持6.44万股
焦点播报:2023秋冬上海时装周开幕 城市地标化身“时尚打卡地”
世界球精选!平安产险泉州中心支公司:树立风险意识,护航幸福晚年
法媒:利雅得胜利有意法国前国脚姆维拉
世界即时:正确的原地踏步方法
中央气象台:北方沙尘天气减弱-世界微头条
环球滚动:工程毛利润和净利润的区别_毛利润和净利润的区别
九牧王(601566)3月23日主力资金净卖出1124.91万元
“长衫”不必脱,鸡汤不必喝_环球要闻
又一国产抗早泄仿制药上市!出道就签下4000万大单 这家公司能否重回高增长?_环球快播
麻油是什么油麻油是什么制作的|播报
甘源食品3月23日盘中跌幅达5% 全球微资讯
“急”时有方 “救”在身边 徐家楼街道新峪社区开展应急救援知识培训 全球热消息