一日一技:你一定经常写出来的冗余代码

有一些同学是从其它语言迁移到Python的,所以写Python代码的时候,还带有其它语言的一些语法特征。于是写出来的Python代码包含了大量没什么用的无效代码。我们今天来看看常见的无效代码有哪些。

创新互联公司长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为渭滨企业提供专业的成都网站制作、成都网站建设,渭滨网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

先定义再复制

列表和字典是重灾区。有一些人在Python里面创建一个元素已经确定的列表,却这样写代码:

 
 
 
 
  1. a = list()
  2. a.append('x')
  3. a.append('y')
  4. a.append('z')

但实际上,你可以直接一行代码写为:

 
 
 
 
  1. a = ['x', 'y', 'z']

初始化一个元素已经确定的字典,有人也喜欢这样写代码:

 
 
 
 
  1. a = dict()
  2. a['name'] = 'kingname'
  3. a['age'] = 100
  4. a['address'] = 'xx'

但实际上,一行代码就可以搞定了:

 
 
 
 
  1. a = {'name': 'kingname', 'age': 100, 'address': 'xx'}

还有些人字典的Key存入列表,是这样写代码的:

 
 
 
 
  1. key_list = []
  2. for key in target_dict.keys():
  3.     key_list.append(key)

但实际上,一行代码就搞定了:

 
 
 
 
  1. key_list = list(target_dict)

条件判断真、假、是否为空

有些人在写条件判断的时候,是这样写的:

 
 
 
 
  1. if a == False:
  2.     print('xx')
  3. if a == []:
  4.     print('xx')
  5. if a == '':
  6.     print('xx')
  7. if a == None:
  8.     print('xx')
  9. if a == 0:
  10.     print('xx')

但实际上,这些判断全部可以合并成一个:

 
 
 
 
  1. if not a:
  2.     print('xx')

同理,对于判断真、非空、非零的代码:

 
 
 
 
  1. if a == True
  2. if len(a) > 0
  3. if a != 0
  4. if a != None

全部都可以合并成:

 
 
 
 
  1. if a:
  2.     print('xxx')

稍稍有点技术含量的冗余

有些人在写条件判断的分支检测的时候,是这样写的:

 
 
 
 
  1. for ele in target_list:
  2.     if ele > 0:
  3.         print('列表中至少有一个数字大于0')
  4.         return True
  5.     else:
  6.         continue

这里的else: continue实际上没有任何作用,完全可以删除:

 
 
 
 
  1. for ele in target_list:
  2.     if ele > 0:
  3.         print('列表中至少有一个数字大于0')
  4.         return True

列表推导式式我们经常使用的一种语法糖。但Python里面,其实还有一个生成器推到式,它写为(x for x in yyy),这里使用小括号。所以对于下面这几行代码:

 
 
 
 
  1. a = ['1', '2', '3']
  2. sum_result = sum([int(x) for x in a])

知道生成器推到式的同学可能会这样写:

 
 
 
 
  1. a = ['1', '2', '3']
  2. sum_result = sum((int(x) for x in a))

但实际上,如果一个生成器推到式作为另一个函数的唯一参数,那么可以省略内层括号:

 
 
 
 
  1. a = ['1', '2', '3']
  2. sum_result = sum(int(x) for x in a)

大家也可以在评论区说说你知道的其它冗余写法。

本文转载自微信公众号「未闻Code」,可以通过以下二维码关注。转载本文请联系未闻Code公众号。

网站标题:一日一技:你一定经常写出来的冗余代码
文章分享:http://www.gawzjz.com/qtweb/news29/173179.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联