page contents

17个提升Python的编码技巧,从此键盘飞起

本文讲述了介绍17个提升python的编码技巧,从此键盘飞起!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2023-12-g8h1bkKm657fe2d677d92.jpg本文讲述了介绍17个提升python的编码技巧,从此键盘飞起!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

“Python 是一种真正美妙的语言。当有人想出一个好主意时,大约需要 1 分钟和 5 行代码来编写几乎可以满足您要求的东西。然后只需要一个小时就可以将脚本扩展到 300 行,之后它仍然几乎可以满足您的需求。” - 杰克詹森


1. 打印N次字符串

你可能使用循环来打印 N 次字符串。但我将向你展示了:在一小行代码中打印 N 次字符串的优美方法。


string = "Python "

ntimes = string * 3

print(ntimes) # Python Python Python

2. 函数多值返回

有时候函数需要返回多个值,我们可以用下面的方式来实现:


def MultiReturn():

    return 1,2,3

a, b, c = MultiReturn()

print(a,b,c) # 1 2 3

3. 导入模块的文件路径

你知道我们可以在 Python 中获取任何导入模块的文件路径吗?当你需要知道模块的路径时,这是一个了不起的功能。查看以下代码示例:


import os

import json


print(os) # <module 'os' from '/usr/lib/python3.6/os.py'>

print(json) # <module 'json' from '/usr/lib/python3.6/json/__init__.py'>

4. 快速反转字符串

要看懂下面代码,你可能要深入了解 Python 切片操作。


string = "Python"

print(string[::-1]) # nohtyP

语法:string[start:end:stop]


start: 开始位置,默认为 0

end: 结束位置,默认为字符串长度

stop: 参数可以省略,默认为 1, 可以为负数,表示倒序。

5. 多变量赋值

许多其他语言 C++、Java、JavaScript 只允许对变量进行一次赋值。但是 Python 允许你执行多个分配,这在不同情况下非常有用。


a, b = 1, 2

print(a,b) # 1 2

6. 去重

python 中,你不再需要循环来从列表中删除重复项,你可以使用内置函数以快速简便的方式完成此操作。看看下面的代码。


lst1 = [1, 3, 3, 4, 5, 1]

lst2 = ["A", "A", "B", "C", "D", "D"]

print(set(lst1)) # {1, 3, 4, 5}

print(set(lst2)) # {'A', 'B', 'C', 'D'}

7. 格式化字符串

你通常使用 + 一元运算符来格式化字符串。简而言之,当想将变量与字符串附加在一起时,可以使用一元运算符 + 。但我将向你展示如何以简单快捷的方式进行这种格式化。


name = "John"

age = 23

# method 1

print("My name is " + name + " and I am " + str(age)) # My name is John and I am 23

# method 2

print("My name is {0} and I am {1}".format(name, age)) # My name is John and I am 23

# method 3

print(f"My name is {name} and I am {age}") # My name is John and I am 23

8. 初始化变量

你可以在 Python 中初始化空容器。简而言之,可以在不分配值或填充它们的情况下声明数据结构。


lst = [] # 初始化一个空列表

dct = {} # 初始化一个空字典

tpl = () # 初始化一个空元组

set = set() # 初始化一个空集合

9. 你的python对象占内存么?

你知道Python内置模块sys可以告诉你一个对象在python中消耗了多少内存吗?


import sys

print(sys.getsizeof(1)) # 28

print(sys.getsizeof(1.0)) # 24

print(sys.getsizeof(True)) # 1

print(sys.getsizeof(None)) # 1

print(sys.getsizeof("Hello")) # 56

print(sys.getsizeof([])) # 40

print(sys.getsizeof(())) # 40

print(sys.getsizeof({})) # 40

print(sys.getsizeof(set())) # 40

10. 反转列表

参照本文第4条,反转字符串。


lst = [1, 3, 3, 4, 5, 1]

print(lst[::-1]) # [1, 5, 4, 3, 3, 1]

11. 反转字典

我将分享一个示例代码来反转字典。简而言之,键和值将交换它们的位置。


dict = {'x' : 1, 'y' : 2, 'z' : 3}

new_dict = { value : key  for key , value in dict.items()}

print(new_dict) # {1: 'x', 2: 'y', 3: 'z'}


## 尝试下下面代码,有惊喜

dict = {'x' : 1, 'y' : 2, 'z' : 2}

new_dict = { value : key  for key , value in dict.items()}

print(new_dict) # {1: 'x', 2: 'z'}

12. 更高级的多变量赋值

本文前面,我们已经学会了如何完成多变量复制。在这个技巧中,我们将学习多变量复制的高级方法。


a, *b, c, d = 3, 4, 5, 6, 7

print(a) # 3

print(b) # [4, 5]

print(c) # 6

print(d) # 7


## ⚠️ 尝试下下面代码

a, *b, c= 3, 4, 5, 6, 7

print(a) # 3

print(b) # [4, 5, 6]

print(c) # 7


13. 连接列表中的字符串

您可能使用循环来迭代列表并将列表的每个项连接在一起。但是需要很多行代码才能完成。此时可用join()方法以快速简便的方式完成此操作。


lst = ['a', 'b', 'c']

print(''.join(lst)) # abc

14. 合并字典

dict1 = {'a' : 1, 'b' : 2}

dict2 = {'c' : 3, 'd' : 4}

dict3 = {**dict1, **dict2}

print(dict3) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

15. Python递归次数有限制么?

当使用递归函数时, Python其实已将默认将递归限制设置为1000,但可以通过如下代码修改其限制:


import sys

current_recursion_limit = sys.getrecursionlimit()

print(current_recursion_limit) # 1000

set_limit = sys.setrecursionlimit(2000)

print(set_limit) # 2000

16. 如何挑出后缀是 xls或者 xlsx 的文件?

你可能已经使用过 startwith 和 endwith 方法来搜索字符串中的前缀或者后缀。但是你不一定知道他们可以使用多个条件。


string1 = 'abc.xls'

# method 1

if string1.endswith('.xls') or string1.endswith('.xlsx'):

    print('Yes')

# method 2

if string1.endswith(('.xls','.xlsx')):

    print('Yes')

17. 学会用 in 代替多个 if 语句

a = [1, 2, 3]

x = 1

# method 1

if a[0] == x or a[1] == x or a[2] == x:

    print('Number X is present in the list')


# method 2

if x in a:

    print('Number X is present in the list')

小节

上面分享的17个提供python的技巧,希望对你有所帮助!

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2023-12-18 14:12
  • 阅读 ( 173 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章