千家信息网

实用Python代码片段分别有哪些

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,实用Python代码片段分别有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。许多人在数据科学、机器学习、web开发、脚本编写和自
千家信息网最后更新 2025年02月23日实用Python代码片段分别有哪些

实用Python代码片段分别有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。

Python流行的部分原因在于简单易学。

本文将简要介绍30个简短的、且能在30秒内掌握的代码片段。

1. 唯一性

以下方法可以检查给定列表是否有重复的地方,可用set()的属性将其从列表中删除。

def all_unique(lst):  return len(lst) == len(set(lst)) x = [1,1,2,2,3,2,3,4,5,6] y = [1,2,3,4,5] all_unique(x) # False all_unique(y) # True

2. 变位词(相同字母异序词)

此方法可用于检查两个字符串是否为变位词。

from collections import Counter def anagram(first, second):  return Counter(first) == Counter(second) anagram("abcd3", "3acdb") # True

3. 内存

此代码段可用于检查对象的内存使用情况。

import sys  variable = 30  print(sys.getsizeof(variable)) # 24

4. 字节大小

此方法可输出字符串的字节大小。

def byte_size(string):  return(len(string.encode('utf-8'))) byte_size('') # 4 byte_size('Hello World') # 11

5. 打印N次字符串

此代码段无需经过循环操作便可多次打印字符串。

n = 2;  s ="Programming";  print(s * n); # ProgrammingProgramming

6. 首字母大写

以下代码片段只利用了title(),就能将字符串中每个单词的首字母大写。

s = "programming is awesome" print(s.title()) # Programming Is Awesome

7. 列表细分

该方法将列表细分为特定大小的列表。

def chunk(list, size):  return [list[i:i+size] for i in range(0,len(list), size)]

8. 压缩

以下代码使用filter()从,将错误值(False、None、0和" ")从列表中删除。

def compact(lst):  return list(filter(bool, lst)) compact([0, 1, False, 2, '', 3, 'a', 's', 34]) # [ 1, 2, 3, 'a', 's', 34 ]

9. 计数

以下代码可用于调换2D数组排列。

array = [['a', 'b'], ['c', 'd'], ['e', 'f']] transposed = zip(*array) print(transposed) # [('a', 'c', 'e'), ('b', 'd', 'f')]

10. 链式比较

以下代码可对各种运算符进行多次比较。

a = 3 print( 2 < a < 8) # True print(1 == a < 2) # False

11. 逗号分隔

此代码段可将字符串列表转换为单个字符串,同时将列表中的每个元素用逗号隔开。

hobbies = ["basketball", "football", "swimming"] print("My hobbies are: " + ", ".join(hobbies)) # My hobbies are: basketball, football, swimming

12. 元音计数

此方法可计算字符串中元音("a"、"e"、"i"、"o"、"u")的数目。

import re def count_vowels(str):  return len(len(re.findall(r'[aeiou]', str, re.IGNORECASE)) count_vowels('foobar') # 3 count_vowels('gym') # 0

13. 首字母小写

此方法可将给定字符串的首字母转换为小写模式。

def decapitalize(string):  return str[:1].lower() + str[1:]   decapitalize('FooBar') # 'fooBar' decapitalize('FooBar') # 'fooBar'

14. 展开列表

下列代码采用了递归法展开潜在的深层列表。

def spread(arg):  ret = []  for i in arg:  if isinstance(i, list):  ret.extend(i)  else:  ret.append(i)  return ret def deep_flatten(lst):  result = []  result.extend(  spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))  return result deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]

15. 寻找差异

此方法仅保留第一个迭代中的值来查找两个迭代之间的差异。

def difference(a, b):  set_a = set(a)  set_b = set(b)  comparison = set_a.difference(set_b)  return list(comparison) difference([1,2,3], [1,2,4]) # [3]

16. 输出差异

以下方法利用已有函数,寻找并输出两个列表之间的差异。

def difference_by(a, b, fn):  b = set(map(fn, b))  return [item for item in a if fn(item) not in b] from math import floor difference_by([2.1, 1.2], [2.3, 3.4],floor) # [1.2] difference_by([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], lambda v : v['x']) # [ { x: 2 } ]

17. 链式函数调用

以下方法可以实现在一行中调用多个函数。

def add(a, b):  return a + b def subtract(a, b):  return a – b a, b = 4, 5 print((subtract if a > b else add)(a, b)) # 9

18. 重复值存在与否

以下方法利用set()只包含唯一元素的特性来检查列表是否存在重复值。

def has_duplicates(lst):  return len(lst) != len(set(lst)) x = [1,2,3,4,5,5] y = [1,2,3,4,5] has_duplicates(x) # True has_duplicates(y) # False

19. 合并字库

以下方法可将两个字库合并。

def merge_two_dicts(a, b):  c = a.copy() # make a copy of a   c.update(b) # modify keys and values of a with the ones from b  return c a = { 'x': 1, 'y': 2} b = { 'y': 3, 'z': 4} print(merge_two_dicts(a, b)) # {'y': 3, 'x': 1, 'z': 4}

在Python3.5及升级版中,也可按下列方式执行步骤代码:

def merge_dictionaries(a, b)  return {**a, **b} a = { 'x': 1, 'y': 2} b = { 'y': 3, 'z': 4} print(merge_dictionaries(a, b)) # {'y': 3, 'x': 1, 'z': 4}

20. 将两个列表转换为字库

以下方法可将两个列表转换为字库。

def to_dictionary(keys, values):  return dict(zip(keys, values)) keys = ["a", "b", "c"]  values = [2, 3, 4] print(to_dictionary(keys, values)) # {'a': 2, 'c': 4, 'b': 3}

21. 列举

以下代码段可以采用列举的方式来获取列表的值和索引。

list = ["a", "b", "c", "d"] for index, element in enumerate(list):   print("Value", element, "Index ", index, ) # ('Value', 'a', 'Index ', 0) # ('Value', 'b', 'Index ', 1) #('Value', 'c', 'Index ', 2) # ('Value', 'd', 'Index ', 3)

22. 时间成本

以下代码可计算执行特定代码所需的时间。

import time start_time = time.time() a = 1 b = 2 c = a + b print(c) #3 end_time = time.time() total_time = end_time - start_time print("Time: ", total_time) # ('Time: ', 1.1205673217773438e-05)

23. Try else语句

可将else句作为try/except语句的一部分,如果没有异常情况,则执行else语句。

try:  2*3 except TypeError:  print("An exception was raised") else:  print("Thank God, no exceptions were raised.") #Thank God, no exceptions were raised.

24. 出现频率很高的元素

此方法将输出列表中出镜率很高的元素。

def most_frequent(list):  return max(set(list), key = list.count) list = [1,2,1,2,3,2,1,4,2] most_frequent(list)

25. 回文(正反读有一样的字符串)

以下代码检查给定字符串是否为回文。首先将字符串转换为小写,然后从中删除非字母字符,最后将新字符串版本与原版本进行比对。

def palindrome(string):  from re import sub  s = sub('[\W_]', '', string.lower())  return s == s[::-1] palindrome('taco cat') # True

26. 不用if-else语句的计算器

以下代码片段展示了如何在不用if-else条件语句的情况下,编写简易计算器。

import operator action = {  "+": operator.add,  "-": operator.sub,  "/": operator.truediv,  "*": operator.mul,  "**": pow } print(action['-'](50, 25)) # 25

27. 随机排序

该算法采用Fisher-Yates algorithm对新列表中的元素进行随机排序。

from copy import deepcopy from random import randint def shuffle(lst):  temp_lst = deepcopy(lst)  m = len(temp_lst)  while (m):  m -= 1  i = randint(0, m)  temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]  return temp_lst foo = [1,2,3] shuffle(foo) # [2,3,1] , foo = [1,2,3]

28. 展开列表

此方法将类似javascript中[].concat(…arr)这样的列表展开。

def spread(arg):  ret = []  for i in arg:  if isinstance(i, list):  ret.extend(i)  else:  ret.append(i)  return ret spread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9]

29. 交换变量

此方法为能在不使用额外变量的情况下快速交换两种变量。

def swap(a, b):  return b, a a, b = -1, 14 swap(a, b) # (14, -1)

30. 获取丢失部分的默认值

以下代码可在所需对象不在字库范围内的情况下获取默认值。

d = {'a': 1, 'b': 2} print(d.get('c', 3)) # 3

这里只简单介绍了一些能在日常工作中帮到我们的方法。

关于实用Python代码片段分别有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

代码 字符 字符串 方法 此方法 两个 字母 片段 元素 字库 情况 语句 可将 检查 差异 输出 函数 变量 大小 小写 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术网络层表格课件 青少年网络安全教育刻不容缓 疫情期间公安网络安全工作 软件开发年度评价 为什么飞卢小说连接服务器超时 大兴区网络营销软件开发职责 未来之战手游怎么转服务器 帝国神话自创服务器红字 数据库一对多主外键关联查询 计算机数据库是指什么 部队网络安全清查报告 mcgs数据库通道处理方法 虚拟服务器架设 人体三维数据库 什么是ftp服务器和游戏服务器 基建网络安全保护 软件开发公司财务面试问题 监听数据库 国家电网招聘软件开发工程师 公司软件开发个人化 数据库的启停是什么意思 网络安全手抄报最新四年级 维朗 北京 网络技术 蒙古网络安全体系建设 依据网络安全法下列说法错误的是 新乡考网络安全工程师 无锡视频分布式存储数据库 access.数据库多选 网络技术顾问协议 上海网络技术服务诚信为本
0