8个优雅的Python编程技巧

Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出 Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优秀的源代码值得阅读,下面列举一些常见的Pythonic写法。

1. 交换赋值

##不推荐

temp = a

a = b

b = a

##推荐

a, b = b, a # 先生成一个元组(tuple)对象,然后unpack

2. Unpacking

##不推荐

l = [‘David’, ‘Pythonista’, ‘+1-514-555-1234’]

first_name = l[0]

last_name = l[1]

phone_number = l[2]

##推荐

l = [‘David’, ‘Pythonista’, ‘+1-514-555-1234’]

first_name, last_name, phone_number = l

# Python 3 Only

first, *middle, last = another_list

3. 使用操作符in

##不推荐

if fruit == “apple” or fruit == “orange” or fruit == “berry”:

# 多次判断

##推荐

if fruit in [“apple”, “orange”, “berry”]:

# 使用 in 更加简洁

4. 字符串操作

##不推荐

colors = [‘red’, ‘blue’, ‘green’, ‘yellow’]

result = ”

for s in colors:

result += s # 每次赋值都丢弃以前的字符串对象, 生成一个新对象

##推荐

colors = [‘red’, ‘blue’, ‘green’, ‘yellow’]

result = ”.join(colors) # 没有额外的内存分配

5. 字典键值列表

##不推荐

for key in my_dict.keys():

# my_dict[key] …

##推荐

for key in my_dict:

# my_dict[key] …

# 只有当循环中需要更改key值的情况下,我们需要使用 my_dict.keys()

# 生成静态的键值列表。

6. 字典键值判断

##不推荐

if my_dict.has_key(key):

# …do something with d[key]

##推荐

if key in my_dict:

# …do something with d[key]

7. 字典 get 和 setdefault 方法

##不推荐

navs = {}

for (portfolio, equity, position) in data:

if portfolio not in navs:

navs[portfolio] = 0

navs[portfolio] += position * prices[equity]

##推荐

navs = {}

for (portfolio, equity, position) in data:

# 使用 get 方法

navs[portfolio] = navs.get(portfolio, 0) + position * prices[equity]

# 或者使用 setdefault 方法

navs.setdefault(portfolio, 0)

navs[portfolio] += position * prices[equity]

8. 判断真伪

##不推荐

if x == True:

# ….

if len(items) != 0:

# …

if items != []:

# …

##推荐

if x:

# ….

if items:

# …

好的,今天的分享到这里就结束了,希望大家持续关注马哥教育官网!每天都会有大量优质内容与大家分享!免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!