我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python开发中有哪些高级技巧

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python开发中有哪些高级技巧

这期内容当中小编将会给大家带来有关Python开发中有哪些高级技巧,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不上多高级,但掌握这些至少可以让你的代码看起来  Pythonic 一点。如果你还在按照类C语言的那套风格来写的话,在 code review 恐怕会要被吐槽了。

列表推导式

>>> chars = [ c for c in 'python' ] >>> chars ['p', 'y', 't', 'h', 'o', 'n']

字典推导式

>>> dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} >>> double_dict1 = {k:v*2 for (k,v) in dict1.items()} >>> double_dict1 {'a': 2, 'b': 4, 'c': 6, 'd': 8, 'e': 10}

集合推导式

>>> set1 = {1,2,3,4} >>> double_set = {i*2 for i in set1} >>> double_set {8, 2, 4, 6}

合并字典

>>> x = {'a':1,'b':2} >>> y = {'c':3, 'd':4} >>> z = {**x, **y} >>> z {'a': 1, 'b': 2, 'c': 3, 'd': 4}

复制列表

>>> nums = [1,2,3] >>> nums[::] [1, 2, 3] >>> copy_nums = nums[::] >>> copy_nums [1, 2, 3]

反转列表

>>> reverse_nums = nums[::-1] >>> reverse_nums [3, 2, 1]

PACKING / UNPACKING

变量交换

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

高级拆包

>>> a, *b = 1,2,3 >>> a 1 >>> b [2, 3]

或者

>>> a, *b, c = 1,2,3,4,5 >>> a 1 >>> b [2, 3, 4] >>> c 5

函数返回多个值(其实是自动packing成元组)然后unpacking赋值给4个变量

>>> def f(): ...     return 1, 2, 3, 4 ... >>> a, b, c, d = f() >>> a 1 >>> d 4

列表合并成字符串

>>> " ".join(["I", "Love", "Python"]) 'I Love Python'

链式比较

>>> if a > 2 and a < 5: ...     pass ... >>> if 2<a<5: ...     pass

yield from

# 没有使用 field from def dup(n):     for i in range(n):         yield i         yield i  # 使用yield from def dup(n):     for i in range(n):     yield from [i, i]  for i in dup(3):     print(i)  >>> 0 0 1 1 2 2

in 代替 or

>>> if x == 1 or x == 2 or x == 3: ...     pass ... >>> if x in (1,2,3): ...     pass

字典代替多个if else

def fun(x):     if x == 'a':         return 1     elif x == 'b':         return 2     else:         return None  def fun(x):     return {"a": 1, "b": 2}.get(x)

有下标索引的枚举

>>> for i, e in enumerate(["a","b","c"]): ...     print(i, e) ... 0 a 1 b 2 c

生成器

注意区分列表推导式,生成器效率更高

>>> g = (i**2 for i in range(5)) >>> g <generator object <genexpr> at 0x10881e518> >>> for i in g: ...     print(i) ... 0 1 4 9 16

默认字典 defaultdict

>>> d = dict() >>> d['nums'] KeyError: 'nums' >>>  >>> from collections import defaultdict >>> d = defaultdict(list) >>> d["nums"] []

字符串格式化

>>> lang = 'python' >>> f'{lang} is most popular language in the world' 'python is most popular language in the world'

列表中出现次数最多的元素

>>> nums = [1,2,3,3] >>> max(set(nums), key=nums.count) 3  或者 from collections import Counter >>> Counter(nums).most_common()[0][0] 3

读写文件

>>> with open("test.txt", "w") as f: ...     f.writelines("hello")

判断对象类型,可指定多个类型

>>> isinstance(a, (int, str)) True

类似的还有字符串的 startswith,endswith

>>> "http://foofish.net".startswith(('http','https')) True >>> "https://foofish.net".startswith(('http','https')) True

__str__ 与 __repr__ 区别

>>> str(datetime.now()) '2018-11-20 00:31:54.839605' >>> repr(datetime.now()) 'datetime.datetime(2018, 11, 20, 0, 32, 0, 579521)'

前者对人友好,可读性更强,后者对计算机友好,支持 obj == eval(repr(obj))

使用装饰器

def makebold(f): return lambda: "<b>" + f() + "</b>"  def makeitalic(f): return lambda: "<i>" + f() + "</i>"  @makebold @makeitalic def say(): return "Hello"  >>> say() <b><i>Hello</i></b>

不使用装饰器,可读性非常差

def say(): return "Hello"  >>> makebold(makeitalic(say))() <b><i>Hello</i></b>

上述就是小编为大家分享的Python开发中有哪些高级技巧了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python开发中有哪些高级技巧

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python开发中有哪些高级技巧

这期内容当中小编将会给大家带来有关Python开发中有哪些高级技巧,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈
2023-06-16

有哪些高级的Python技巧

本篇内容主要讲解“有哪些高级的Python技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些高级的Python技巧”吧!1.通过多个键值将对象进行排序假设要对以下字典列表进行排序:peop
2023-06-16

Python开发的高级技巧分别是哪些

Python开发的高级技巧分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我列出几个Python高级技巧:1. contextmanager写Python代码的时候经常
2023-06-17

有哪些Python开发技巧

这篇文章主要介绍“有哪些Python开发技巧”,在日常操作中,相信很多人在有哪些Python开发技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python开发技巧”的疑惑有所帮助!接下来,请跟着小编
2023-06-16

Python有哪些开发技巧

这篇文章主要讲解了“Python有哪些开发技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些开发技巧”吧! 1. 如何在运行状态查看源代码?查看函数的源代码,我们通常会使用
2023-06-16

Python开发的技巧有哪些

这篇文章主要讲解了“Python开发的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python开发的技巧有哪些”吧!1. 列表推导式你有一个list:bag = [1, 2, 3
2023-06-02

高级CSS技巧有哪些

今天小编给大家分享一下高级CSS技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。精灵图1. 为什么需要精灵图?客户端
2023-07-04

linux中开发技巧有哪些

这篇文章将为大家详细讲解有关linux中开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.make: Nothing to be done for `all 解决方法 1.这句提示是说明你已
2023-06-13

python sort、sorted高级排序技巧有哪些

今天小编给大家分享一下python sort、sorted高级排序技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。P
2023-07-05

Python开发环境的技巧有哪些

这篇文章主要介绍“Python开发环境的技巧有哪些”,在日常操作中,相信很多人在Python开发环境的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python开发环境的技巧有哪些”的疑惑有所帮助!
2023-06-16

Python中有哪些高效的技巧

本篇内容主要讲解“Python中有哪些高效的技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中有哪些高效的技巧”吧!反转列表Python 中通常有两种反转列表的方法:切片或 rev
2023-07-06

JavaScript开发技巧有哪些

本篇内容介绍了“JavaScript开发技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  使用很多javascript代码的Web
2023-06-04

WEBAPP开发技巧有哪些

本篇内容主要讲解“WEBAPP开发技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WEBAPP开发技巧有哪些”吧!1、要响应式开发web,也就是页面必须自适应屏幕大小,可以采用流体布局,
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录