你所不知道的Python奇技淫巧13招【实用】

  • Post category:Python

你所不知道的Python奇技淫巧13招【实用】攻略

Python一门功能强大且易学的编程语言,可以用来开发各种类型的应用程序。除了基础语法外,还有很多Python的高级技巧和奇技淫巧可以让代码更加简洁、优雅和高效。下面就是一些Python技巧和技巧,可以让你的Python编码更加高效和愉悦。

1. 交换两个变量的值

有时候我们需要将两个变量的值交换,通常的解决方法是使用一个中间变量来存储其中一个变量的值。但是,Python提供了一种更加简洁的方法,可以直接使用tuple unpacking方式完成这个任务。

a = 5
b = 10
a, b = b, a
print(a, b)  # 10 5

2. 判断列表中是否有重复元素

如果你需要判断一个列表中是否有重复的元素,可以使用set数据类型,因为set数据类型的元素是唯一的。

def has_duplicates(lst):
    return len(lst) != len(set(lst))

lst1 = [1, 2, 3, 4, 5]
lst2 = [1, 2, 3, 4, 4]
print(has_duplicates(lst1))  # False
print(has_duplicates(lst2))  # True

3. 从列表中找出出现次数最多的元素

如果你需要在一个列表中找出出现次数最多的元素,可以使用collections模块中的Counter类。

from collections import Counter

lst = [1, 2, 3, 4, 5, 1, 2, 1, 4, 5, 5]
counter = Counter(lst)
most_common = counter.most_common(1)
print(most_common)  # [(5, 3)]

4. 比较两个文件是否相同

如果你需要比较两个文件是否相同,可以使用Python标准库中的filecmp模块。

import filecmp

result = filecmp.cmp('file1.txt', 'file2.txt')
if result:
    print('文件内容相同')
else:
    print('文件内容不相同')

5. 统计字符串中字母的出现次数

如果你需要统计一个字符串中每个字母出现的次数,可以使用collections模块中的defaultdict类。

from collections import defaultdict

s = 'hello, world!'
d = defaultdict(int)
for c in s:
    d[c] += 1

print(dict(d))  # {'h': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}

6. 从list中选择n个元素的所有组合

如果你需要从一个list中选择n个元素的所有组合,可以使用itertools模块中的combinations函数。

from itertools import combinations

lst = [1, 2, 3, 4]
for i in range(1, len(lst) + 1):
    for comb in combinations(lst, i):
        print(comb)

7. 让Python脚本在后台运行

如果你需要让Python脚本在后台运行,可以使用nohup命令。

nohup python3 script.py &

8. 执行外部命令

如果你需要执行一些外部命令,可以使用subprocess模块。

import subprocess

result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)

9. 在for循环中使用enumerate函数

如果你需要在for循环中得到每个元素的索引和值,可以使用enumerate函数。

lst = ['a', 'b', 'c']
for i, value in enumerate(lst):
    print(i, value)

10. 从二维列表中抽取某个元素的所有值

如果你需要从一个二维列表中抽取某个元素的所有值,可以使用列表推导式。

lst = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

result = [row[1] for row in lst]
print(result)  # [2, 5, 8]

11. 计算两个日期之间的天数

如果你需要计算两个日期之间的天数,可以使用datetime模块中的date对象。

from datetime import date

d1 = date(2020, 1, 1)
d2 = date(2020, 1, 10)
delta = d2 - d1
print(delta.days)  # 9

12. 生成器表达式

如果你需要使用列表推导式来生成一个列表,但是列表太大,不适合存储在内存中,可以使用生成器表达式。

result = sum(x ** 2 for x in range(10))
print(result)  # 285

13. 在Python中使用sorted函数

如果你需要对一个序列进行排序,可以使用Python中的sorted函数。

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = sorted(set(lst))
print(result)  # [1, 2, 3, 4, 5, 6, 9]

以上就是这13个实用的Python技巧和技巧,希望对你有所帮助。