Python必须知道的15个强大单行代码

快速生成等差数列

arithmetic_sequence = list(range(1, 10, 2))
print(arithmetic_sequence)
# Output: [1, 3, 5, 7, 9]

这里我们使用了 Python 的内置函数 range() 来生成等差数列,其中 range(start, stop, step) 函数返回一个从 start 开始、步长为 step、不包含 stop 的序列。然后通过 list() 将其转换为列表。

一键反转字符串

string = "hello"
reversed_string = string[::-1]
print(reversed_string)
# Output: "olleh"

一行实现列表去重

original_list = [1, 2, 2, 3, 3, 4, 5]
unique_list = list(set(original_list))
print(unique_list)
# Output: [1, 2, 3, 4, 5]

这里将列表转换为集合,集合的特性是元素唯一性,然后再转换回列表,这样就去除了重复元素。

简洁计算阶乘

import math
n = 5
factorial = math.factorial(n)
print(factorial)
# Output: 120

使用 Python 的内置模块 math 中的 factorial() 函数可以直接计算阶乘。

math.factorial()

方法是数学模块的库方法,用于查找给定数字的阶乘,它接受正整数并返回数字的阶乘。

# Python code to demonstrate example of 
# math.factorial() method
 
# importing math module
import math
 
# numbers
a = 0
b = 1
c = 6
d = 13
 
# printing factorial
print("factorial of ", a, " is = ", math.factorial(a))
print("factorial of ", b, " is = ", math.factorial(b))
print("factorial of ", c, " is = ", math.factorial(c))
print("factorial of ", d, " is = ", math.factorial(d))
 

输出

factorial of  0  is =  1
factorial of  1  is =  1
factorial of  6  is =  720
factorial of  13  is =  6227020800
 

轻松统计字符串中单词出现次数

text = "this is a test test string string"
word_counts = {word: text.split().count(word) for word in set(text.split())}
print(word_counts)
# Output: {'is': 1, 'string': 2, 'a': 1, 'this': 1, 'test': 2}

这里使用了字典推导式和 split() 方法,首先将字符串拆分为单词列表,然后使用 count() 方法统计每个单词出现的次数。

一行代码实现斐波那契数列

fibonacci = lambda n: n if n <= 1 else fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(5))
# Output: 5

这是一个使用 lambda 表达式定义的递归函数,计算斐波那契数列。但需要注意的是,递归实现的效率不高,对于大的 n 可能会导致性能问题。

快速交换两个变量值

a, b = 1, 2
a, b = b, a
print(a, b)
# Output: 2 1

Python 中的元组解包使得交换变量值变得非常简洁。

一行代码求最大公约数(GCD)

import math
a,b = 12,8
gcd = math.gcd(a,b)
print(gcd)

使用 Python 内置模块math 中的 gcd() 函数来求最大公约数

列表元素排序并保持原索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值