五个Python编程Tips!帮你提高编码效率

环球青藤 2020/09/30 05:15

技巧一:使用单行(one-liners)简化语句

每次看到那么多行的条件语句的时候,是不是都觉得头好痛? 如果简单一些的还好说,能找出不同条件下的关系,但是复杂的简直就是要迷失自我了。今天给大家介绍的 Python 单行功能也许能帮你解决这个困扰。例如,条件语句

1>>> if alpha > 7:

2>>> beta = 999

3>>> elif alpha == 7:

4>>> beta = 99

5>>> else:

6>>> beta = 0

可以简化为

1>>> beta = 999 if alpha > 7 else (beta == 99 if alpha == 7 else 0)

当然,如果将所有内容都链接成一行,可能会有点麻烦。同时,还要确保你的代码中没有过度使用单行代码。

技巧二:字符串快速操作

要反转字符串,我们只需添加 ::-1 作为列表索引,就可以让你的工作非常轻松。

1>>> a = "ilovepython"

2>>> print a[::-1]

3nohtypevoli

同样的技巧也可以应用于整数列表。在 Python 中,字符串操作非常简单。 例如,如果要使用以下的预定义变量 str1、str2 和 lst3 来输出一个句子。

1>>> str1 = "Totally"

2>>> str2 = "Awesome"

3>>> lst3 = ["Omg", "You", "Are"]

只需使用.join()方法和算术运算符即可创建所需的句子。

1>>> print ' '.join(lst3)

2Omg You Are

3>>> print ' '.join(lst3)+' '+str1+' '+str2

4Omg You Are Totally Awesome

除了字符串操作,还建议大家了解更多有关正则表达式的方法,以便更有效地搜索字符串和过滤模式。

技巧三:嵌套的列表组合

itertools 是我最喜欢的 Python 库之一。试想一下,你的代码中有十几个列表,经过一些操作后,会得到一个深度嵌套的列表。 itertools 正是用来解决语法混乱的工具。

1>>> import itertools

2>>> flatten = lambda x: list(itertools.chain.from_iterable(x))

3>>> s = [['"', 'An', 'investment'], ['in'], ['knowledge'], ['pays'], ['the', 'best'], ['interest."', '--'], ['Benjamin'], ['Franklin']]

4>>> print(' '.join(flatten(s)))

5" An investment in knowledge pays the best interest." -- Benjamin Franklin

从上面的例子中可以看出,我们可以使用 .join()和 itertools 方法来组合嵌套的列表和字符串。itertools 中的 .combinations()方法可以用于从输入迭代中返回元素的长度子序列。

技巧四:简单的数据结构

回到技巧一,可以非常容易的使用单行程序来初始化Python中的数据结构。 Harold Cooper 使用以下代码实现了单行树结构:

1>>> def tree(): return defaultdict(tree)

上面显示的代码只是定义了一个默认值为树的字典。

1>>> reduce( (lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r), range(2,N), set(range(2,N)))

Python 还拥有一个强大的库,如 Collections,它可以帮助您解决各种现实问题,不用编写冗长的代码。

1>>> from collections import Counter

2>>> myList = [1,1,2,3,4,5,3,2,3,4,2,1,2,3]

3>>> print(Counter(myList))

4Counter({2: 4, 3: 4, 1: 3, 4: 2, 5: 1})

技巧五:轻松打印(print)

最后分享给大家的是,我希望自己能在学习初期的时候就知道的一个技巧。 我们不需要使用 .join()和循环,就可以打印一个带有字符串的数组。

1>>> row = ["1", "bob", "developer", "python"]

2>>> print(','.join(str(x) for x in row))

31,bob,developer,python

单行代码则如下:

1>>> print(*row, sep=',')

21,bob,developer,python

另一个巧妙的打印技巧是使用枚举。 enumerate 是Python的内置函数,非常有用。 因此,不需要写如下一个四行代码

1>>> iterable = ['a','b','c']

2>>> c = 0

3>>> for item in iterable:

4>>> print c, item

5>>> c+= 1

60 a

71 b

82 c

只需两行就可以完成同样的工作

1>>> for c, item in enumerate(iterable):

2>>> print c, item

关于五个Python编程Tips!帮你提高编码效率,青藤小编就和您分享到这里了。如果您对python编程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于python编程的技巧及素材等内容,可以点击本站的其他文章进行学习。

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司