5种非常棒的 Python 技巧,使你的代码更优雅

Python学习与数据挖掘

共 1746字,需浏览 4分钟

 ·

2021-01-12 23:27

Python 是全世界程序员使用最广泛的语言之一。它可用应用于机器学习、深度学习和数据科学的各种项目。语法简洁也使得它成为 Python 初学者的首选语言。

今天教大家一些 Python 技巧,它可以使你的代码更优雅和高效。

列表

只需一行代码,让你的代码看起来更简洁,并且看起来更专业。

a = [2,5,7,9]
b = []
for i in range(len(a)):
    b.append(a[i]+1)

这是正常的 code 方式,现在让它更加简洁、专业一点。

a = [2,5,7,9]
b = [a[i]+1 for i in range(len(a))] 

你可以看到代码之间的差别。现在这只是一个简单的例子,后续你会发现有更多的应用案例,并可以大幅帮你减少代码长度。

反转字符串

让我们编写一些代码来反转字符串。

def reverse_string(string):
     result=""
     for c in range(len(string),-1,-1):
          result = result + string[c]
     return result 

看起来有点乱吧, 用另一种方式来表达:

def reverse_string(string):
    result = [ string[c] for c in range(len(string),-1,-1)]
    return "".join(result)

看起来不错吧,其实使用切片的方法可以更好,方法如下:

def reverse_string(string):
    return string[::-1]

将数字与数字进行求和

将数字与数字进行求和,这是一个非常简单的问题,

首先,我们可以用传统方法解决这个问题:

def sum_a_num(num):
    sum = 0
    while num > 0:
        sum+= num%10
        num//=10
    return sum

这是可以的,但在紧张的情况下,最终可能会与运算符发生拼写错误或错误,最终得到错误的结果,并花费数小时尝试调试代码。

因此,要避免这种情况,有一个更好的方法做到这一点。

def sum_a_num(num):
    return sum(list(map(int,str(num))))

现在上述代码所做的是:

  • 将 num 转换为字符串;
  • map() 函数在字符串上遍数,并将每个字符转换为整数;
  • list() 函数将映射对象转换为列表,然后求和;
num = 2367
str(num) = '2367'
list(map(int,str(num))) = [2,3,6,7]
sum(list(map(int(str(num)))) = 18

交换两个数字

现在,这是一件非常简单的事情。

x = 10
y = 15
x = x + y
y = x - y
x = x - y

但是,让我们在一行代码中做到这一点

x = 10
y = 15
x,y = y,x

这样更好。不是吗?

列表或字符串中最常见的元素

有多种方法可以实现此需求,我们可以使用循环以简单的方式做到这一点。下面我分享两种更高效的方法:

l = [1,2,1,4,6,2,7,8,2,2]
print(max(l,key = l.count))

或者

my_string = "python_is_great"
print(sorted(my_string,key = my_string.count)[0])


福利时间

大家好,最后给大家免费分享 Python 三件套:《ThinkPython》、《简明Python教程》、《Python进阶》的PDF电子版。如果你是刚入门的小白,不用想了,这是最好的学习教材。

现在免费分享出来,有需要的读者可以下载学习,在下面的公众号里回复关键字:三件套,就行。

领取方式:

长按扫码,发消息 [三件套]



浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报