你猜 1 行Python代码能干什么呢?神奇的单行 Python 代码

⛳️ 1 行代码的由来

都说 Python 简单快捷,那本篇博客就为大家带来一些实用的 Python 技巧,而且仅需要 1 行代码,就可以解决一些小问题。

所有的 1 行代码,全部依据标准的 Python 语言规范实现。

⛳️ 列表推导式

生成器语法绝对是 Python 带给我们的优质语法糖,它可以基于现有的列表创建一个新的列表,而且语法格式简单。

students = ["橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦"]
new_students = [name for name in students if name.startswith("橡皮")]
print(new_students)

上述代码的第二行在原始列表中过滤出一个全新的列表,语法很简单。基于语法结构,以及字典派生和集合派生的知识点,您可以使用一行代码来实现目标需求。你可以学到的。

[En]

The second line of the above code filters out a brand-new list in the original list, and the syntax is simple. Based on the syntax structure, as well as dictionary-derived and set-derived knowledge points, you can use 1 line of code to achieve the target requirements. You can learn.

⛳️ 合并字典

在 Python 实战中,有时需要将两个字典进行合并,最常用的是使用 update() 方法,或者 merge() 函数,当然也有工程师使用刚刚提及的字典推导式实现,那有没有更加简洁的写法呢?可以看下述代码

my_dict_1 = {'red': '红色', 'green': '绿色'}
my_dict_2 = {'blue': '蓝色', 'yellow': '黄色'}
merged_dict = {**my_dict_1, **my_dict_2}

print(merged_dict)

其中 ** 符号是解包运算符,即将字典中的内容拆解,解包之后就可以参照上述代码使用 {} 合并字典,当然也可以直接使用 dict() 函数进行合并

my_dict_1 = {'red': '红色', 'green': '绿色'}
my_dict_2 = {'blue': '蓝色', 'yellow': '黄色'}
merged_dict = dict(**my_dict_1, **my_dict_2)

print(merged_dict)

如果你一时没有转换过来,那可以使用下述代码进行转换,即使用元素拼接技巧,先将字典转换为 list,然后连接。

my_dict_1 = {'red': '红色', 'green': '绿色'}
my_dict_2 = {'blue': '蓝色', 'yellow': '黄色'}
merged_dict = dict(list(my_dict_1.items()) + list(my_dict_2.items()))
print(merged_dict)

⛳️ 列表去重

在实战中,也会碰到列表去重的情况,如果列表数据量不大,可以直接使用 set() 函数去重,即利用集合不允许包含重复值这一特性。

names = ["橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦"]

un_list = list(set(names))

print(un_list)

⛳️ 一行代码交换变量值

这也是 Python 中的语法糖了,在做排序类算法时经常碰到,使用一行代码进行变量值的交换。

a = 1
b = 2
a, b = b, a

print(a, b)

在此基础上,可以扩展到更多的变量,并衍生出另一行代码知识点,即一行代码为多个变量赋值。示例代码如下:

[En]

On this basis, it can be extended to more variables, and another line of code knowledge point will be derived, that is, one line of code assigns values to multiple variables. The sample code is as follows:

a, b, c, d = 1, 2, 3, 4
(a, b), (c, d) = (b, a), (d, c)

print(a, b, c, d)

⛳️ 利用 print 输出日志到文件

编写代码经常要测试输出结果,因此会大量的使用到 print 函数,而这些结果默认会输出到控制台,关闭程序运行之后,结果就消失了,实践中,可以利用一下 print 函数的第二个参数,实现将输出写入到文件中。

print("Hello, World!", file=open('ca.txt', 'w'))

⛳️ 转置矩阵

转置矩阵也可以使用一行代码来完成。

[En]

Transposing the matrix can also be done with a single line of code.

old_list = [[1, 2], [3, 4]]

print(list(zip(*old_list)))

但是上面的代码将列表转换为元组,如果您不希望发生这种情况,可以使用下面的代码,它仍然只有一行。

[En]

But the above code converts the list into tuples, and if you don’t want that to happen, you can use the following code, which is still one line.

old_list = [[1, 2], [3, 4]]
print(list(list(x) for x in zip(*old_list)))

⛳️ 一行丧心病狂的代码

除了正常的操作外,在 Python 中还能实现一些神奇的操作,例如下述代码:

print(eval(input()))

您可以输入一行代码,然后直接输出结果!

[En]

You can enter a single line of code and then output the results directly!

此代码的最佳实践是用一行代码实现一个计算器。

[En]

The best practice for this code is to implement a calculator with one line of code.

📢📢📢📢📢📢 💗 你正在阅读 【梦想橡皮擦】 的博客 👍 阅读完毕,可以点点小手赞一下 🌻 发现错误,直接评论区中指正吧 📆 橡皮擦的第 篇原创博客

Original: https://blog.51cto.com/cnca/5606153
Author: 梦想橡皮擦
Title: 你猜 1 行Python代码能干什么呢?神奇的单行 Python 代码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500603/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球