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

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

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


先定义再复制


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


a = list()
a.append('x')
a.append('y')
a.append('z')


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


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


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


a = dict()
a['name'] = 'kingname'
a['age'] = 100
a['address'] = 'xx'


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


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


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


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


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


key_list = list(target_dict)


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


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


if a == False:
    print('xx')
if a == []:
    print('xx')
if a == '':
    print('xx')
if a == None:
    print('xx')
if a == 0:
    print('xx')


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


if not a:
    print('xx')


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


if a == True
if len(a) > 0
if a != 0
if a != None


全部都可以合并成:


if a:
    print('xxx')


稍稍有点技术含量的冗余


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


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


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


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


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


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


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


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


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

号:


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


请关注微信公众号【未闻Code】获取更多精彩文章。


目录
相关文章
|
6天前
|
设计模式 算法
提高代码复用性,减少冗余代码
提高代码复用性,减少冗余代码
29 3
|
9月前
|
容灾 NoSQL Redis
关于冗余设计
冗余设计是保证系统和数据高可用的最常的手段。
168 1
|
算法 开发工具 git
多主复制下处理写冲突(3)-收敛至一致的状态及自定义冲突解决逻辑
主从复制模型的数据更新符合顺序性原则:若同一字段有多个更新,则最后一个写操作决定该字段的终值。
91 0
|
存储 缓存 运维
系统稳定性设计原则:简单、冗余、标准化、健壮
系统稳定性设计原则:简单、冗余、标准化、健壮
551 0
系统稳定性设计原则:简单、冗余、标准化、健壮
|
设计模式 JavaScript 前端开发
如何优雅的消除系统重复代码
在程序猿的日常工作中,不仅要跟随业务侧的发展不断开发新的需求,同时也需要维护老的已有平台。无论是开发新需求还是维护老系统,我们都会遇到同样一个问题,系统中总是充斥着很多重复的代码。
29476 11
如何优雅的消除系统重复代码
|
数据采集
冗余分析
上一次给大家介绍了如何用R语言进行主成分分析,今天介绍的主角也是PCA的好朋友噢,掌声欢迎我们的第二位小伙伴——冗余分析(RDA)。
1014 0
冗余分析
|
监控 架构师 搜索推荐
在别人写的代码上做修改我是这样保证正确性
在别人写的代码上做修改我是这样保证正确性
在别人写的代码上做修改我是这样保证正确性
|
关系型数据库 MySQL 索引
二十七、冗余和重复索引
二十七、冗余和重复索引
105 0
|
XML JSON API
代码改动和配置文件相分离
因为我们支持的字段可能会发生变化,为了避免因为这些变化导致我们频繁调整代码,我把所有字段的全集和每个网站支持的字段都放到配置文件里了。 Backend仓库下有个配置文件koiFieldList.xml, 存放的是支持字段的全集。 我会写一个API,将这个文件的内容暴露出来。
代码改动和配置文件相分离
一个利用正则表达式进行代码重构,去除冗余代码的例子
一个利用正则表达式进行代码重构,去除冗余代码的例子
308 0
一个利用正则表达式进行代码重构,去除冗余代码的例子