请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

即学即用的 30 段 Python 实用代码

[复制链接]
查看: 32|回复: 0

8498

主题

8498

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
25504
发表于 2019-12-2 16:48 | 显示全部楼层 |阅读模式
Pyt
  1. Python是现在最流行的说话之一,它在数据科学、呆板进修、web斥地、剧本编写、自动化方面被很多人普遍利用。它的简单和易用性造就了它如此流行的原因原由。在本文中,我们将会先容 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
复制代码
很多人进修python,把握了底子语法事后,不晓得在那边根究案例上手。
很多已经做案例的人,却不晓得怎样去进修加倍高深的常识。
那末针对这三类人,我给大家供给一个好的进修平台,免费支付视频教程,电子书籍,以及课程的源代码!
QQ群:127341871
[img=auto,auto]http://www.waysfocus.com/https://upload-images.jianshu.io/upload_images/16749064-d6e15b5e262ceca5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240[/img]
  1. 2.变位词检测两个字符串能否互为变位词(即相互颠倒字符顺序)from collections import Counter    def anagram(first, second):        return Counter(first) == Counter(second)    anagram("abcd3", "3acdb") # True3.检查内存利用情况以下代码段可用来检核工具的内存利用情况。import sys    variable = 30     print(sys.getsizeof(variable)) # 244.字节巨细盘算以下方式将以字节为单元返回字符串长度。def byte_size(string):        return(len(string.encode( utf-8 )))        byte_size(  ) # 4    byte_size( Hello World ) # 115.反复打印字符串 N 次以下代码不需要利用循环即可打印某个字符串 n 次n = 2; s ="Programming"; print(s * n); # ProgrammingProgramming6.首字母大写以下代码段利用 title() 方式将字符串内的每个词举行首字母大写。s = "programming is awesome"    print(s.title()) # Programming Is Awesome7.分块以下方式利用 range() 将列表分块为指定巨细的较小列表。from math import ceil    def chunk(lst, size):        return list(            map(lambda x: lst[x * size:x * size + size],                list(range(0, ceil(len(lst) / size)))))    chunk([1,2,3,4,5],2) # [[1,2],[3,4],5]8.紧缩以下方式利用 fliter() 删除列表中的毛病值(如: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.间隔数以下代码段可以用来转换一个二维数组。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) # False11.逗号分隔以下代码段可将字符串列表转换为单个字符串,列表中的每个元素用逗号分隔。hobbies = ["basketball", "football", "swimming"]print("My hobbies are: " + ", ".join(hobbies)) # My hobbies are: basketball, football, swimming12.盘算元音字母数以下方式可盘算字符串中元音字母(‘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 ) # 013.首字母规复小写以下方式可用于将给定字符串的第一个字母转换为小写。def decapitalize(string):        return str[:1].lower() + str[1:]    decapitalize( FooBar ) #  fooBar     decapitalize( FooBar ) #  fooBar14.平面化以下方式利用递归来展开匿伏的深度列表。def spread(arg):    ret = []    for i in arg:        if isinstance(i, list):            ret.extend(i)        else:            ret.append(i)    return retdef deep_flatten(lst):    result = []    result.extend(        spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))    return resultdeep_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 floordifference_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 + bdef subtract(a, b):    return a - ba, b = 4, 5print((subtract if a > b else add)(a, b)) # 918.检查反复值以下方式利用 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) # Truehas_duplicates(y) # False19.合并两个辞书以下方式可用于合并两个辞书。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 ca = {  x : 1,  y : 2}b = {  y : 3,  z : 4}print(merge_two_dicts(a, b)) # { y : 3,  x : 1,  z : 4}在Python 3.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 timestart_time = time.time()a = 1b = 2c = a + bprint(c) #3end_time = time.time()total_time = end_time - start_timeprint("Time: ", total_time)# ( Time:  , 1.1205673217773438e-05)23.Try else 指令你可以将 else 子句作为 try/except 块的一部分,假如没有抛出很是,则尝试该子句。try:    2*3except 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 ) # True26.没有 if-else 语句的简单盘算器以下代码段将展现怎样编写一个不利用 if-else 条件的简单盘算器。import operatoraction = {    "+": operator.add,    "-": operator.sub,    "/": operator.truediv,    "*": operator.mul,    "**": pow}print(action[ - ](50, 25)) # 2527.元素顺序打乱以下算法经过实现 Fisher-Yates算法 在新列表及第行排序来将列表中的元素顺序随机打乱。from copy import deepcopyfrom random import randintdef 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 retspread([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, aa, b = -1, 14swap(a, b) # (14, -1)30.获得缺失键的默许值以下代码段表示了怎样在字典中没有包含要查找的键的情况下获得默许值。d = { a : 1,  b : 2}print(d.get( c , 3)) # 3
复制代码
  
hon是现在最流行的说话之一,它在数据科学、呆板进修、web斥地、剧本编写、自动化方面被很多人普遍利用。它的简单和易用性造就了它如此流行的原因原由。在本文中,我们将会先容 30 个简短的代码片断,你可以在 30 秒或更短的时候里明白和进修这些代码片断。1.检查反复元素
下面的方式可以检查给定列表中能否有反复的元素。它利用了 set() 属性,该属性将会从列表中删除反复的元素。
  1. 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.变位词
检测两个字符串能否互为变位词(即相互颠倒字符顺序)
  1. from collections import Counter   def anagram(first, second):        return Counter(first) == Counter(second)    anagram("abcd3", "3acdb") # True
复制代码

3.检查内存利用情况
以下代码段可用来检核工具的内存利用情况。
  1. import sys    variable = 30     print(sys.getsizeof(variable)) # 24
复制代码
4.字节巨细盘算
以下方式将以字节为单元返回字符串长度。
  1. def byte_size(string):        return(len(string.encode( utf-8 )))   byte_size(  ) # 4    byte_size( Hello World ) # 11
复制代码

5.反复打印字符串 N 次
以下代码不需要利用循环即可打印某个字符串 n 次
n = 2; s ="Programming"; print(s * n); # ProgrammingProgramming[/code]6.首字母大写
以下代码段利用 title() 方式将字符串内的每个词举行首字母大写。
  1. s = "programming is awesome"    print(s.title()) # Programming Is Awesome
复制代码
7.分块
以下方式利用 range() 将列表分块为指定巨细的较小列表。
  1. from math import ceil def chunk(lst, size):        return list(            map(lambda x: lst[x * size:x * size + size],                list(range(0, ceil(len(lst) / size)))))    chunk([1,2,3,4,5],2) # [[1,2],[3,4],5]
复制代码

8.紧缩
以下方式利用 fliter() 删除列表中的毛病值(如:False, None, 0 和“”)
  1. def compact(lst):        return list(filter(bool, lst))    compact([0, 1, False, 2, , 3,  a ,  s , 34]) # [ 1, 2, 3,  a ,  s , 34 ]
复制代码

9.间隔数
以下代码段可以用来转换一个二维数组。
  1. array = [[ a ,  b ], [ c ,  d ], [ e ,  f ]]    transposed = zip(*array)    print(transposed) # [( a ,  c ,  e ), ( b ,  d ,  f )]
复制代码
10.链式比力
以下代码可以在一行中用各类操纵符举行屡次比力。
  1. a = 3    print( 2 < a < 8) # True    print(1 == a < 2) # False
复制代码
11.逗号分隔
以下代码段可将字符串列表转换为单个字符串,列表中的每个元素用逗号分隔。
  1. hobbies = ["basketball", "football", "swimming"]print("My hobbies are: " + ", ".join(hobbies)) # My hobbies are: basketball, football, swimming
复制代码

12.盘算元音字母数
以下方式可盘算字符串中元音字母(‘a’, ‘e’, ‘i’, ‘o’, ‘u’)的数目。
  1. 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.首字母规复小写
以下方式可用于将给定字符串的第一个字母转换为小写。
  1. def decapitalize(string):        return str[:1].lower() + str[1:]    decapitalize( FooBar ) #  fooBar     decapitalize( FooBar ) #  fooBar
复制代码

14.平面化
以下方式利用递归来展开匿伏的深度列表。
  1. def spread(arg):    ret = []    for i in arg:        if isinstance(i, list):            ret.extend(i)        else:            ret.append(i)    return retdef deep_flatten(lst):    result = []    result.extend(        spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))    return resultdeep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]
复制代码

15.不同
该方式只保存第一个迭代器中的值,从而发现两个迭代器之间的不同。
  1. 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.根究不同
下面的方式在将给定的函数利用于两个列表的每个元素后,返回两个列表之间的差值。
  1. 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 floordifference_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.链式函数挪用
以下方式可在一行中挪用多个函数。
  1. def add(a, b):    return a + bdef subtract(a, b):    return a - ba, b = 4, 5print((subtract if a > b else add)(a, b)) # 9
复制代码

18.检查反复值
以下方式利用 set() 方式仅包含唯一元素的究竟来检查列表能否具有反复值。
  1. 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) # Truehas_duplicates(y) # False
复制代码

19.合并两个辞书
以下方式可用于合并两个辞书。
  1. 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 ca = {  x : 1,  y : 2}b = {  y : 3,  z : 4}print(merge_two_dicts(a, b)) # { y : 3,  x : 1,  z : 4}
复制代码

在Python 3.5及更高版本中,你还可以尝试以下操纵:
  1. 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.将两个列表转换成一个辞书
以下方式可将两个列表转换成一个辞书。
  1. 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.利用罗列
以下方式将字典作为输入,然后仅返回该字典中的键。
  1. 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.盘算所需时候
以下代码段可用于盘算尝试特定代码所需的时候。
  1. import timestart_time = time.time()a = 1b = 2c = a + bprint(c) #3end_time = time.time()total_time = end_time - start_timeprint("Time: ", total_time)# ( Time:  , 1.1205673217773438e-05)
复制代码

23.Try else 指令
你可以将 else 子句作为 try/except 块的一部分,假如没有抛出很是,则尝试该子句。
  1. try:    2*3except TypeError:    print("An exception was raised")else:    print("Thank God, no exceptions were raised.")#Thank God, no exceptions were raised.
复制代码

24.查找最多见元素
以下方式返回列表中出现的最多见元素。
  1. 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.回文
以下方式可检查给定的字符串能否为回文结构。该方式首先将字符串转换为小写,然后从中删除非字母数字字符。末端,它会将新的字符串与反转版本举行比力。
  1. 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 条件的简单盘算器。
  1. import operatoraction = {    "+": operator.add,    "-": operator.sub,    "/": operator.truediv,    "*": operator.mul,    "**": pow}print(action[ - ](50, 25)) # 25
复制代码

27.元素顺序打乱
以下算法经过实现 Fisher-Yates算法 在新列表及第行排序来将列表中的元素顺序随机打乱。
  1. from copy import deepcopyfrom random import randintdef 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_lstfoo = [1,2,3]shuffle(foo) # [2,3,1] , foo = [1,2,3]
复制代码

28.列表扁平化
以下方式可使列表扁平化,类似于JavaScript中的[].concat(…arr)。
  1. def spread(arg):    ret = []    for i in arg:        if isinstance(i, list):            ret.extend(i)        else:            ret.append(i)    return retspread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9]
复制代码

29.变量交换
以下是交换两个变量的快速方式,而且无需利用额外的变量。
  1. def swap(a, b):  return b, aa, b = -1, 14swap(a, b) # (14, -1)
复制代码

30.获得缺失键的默许值
以下代码段表示了怎样在字典中没有包含要查找的键的情况下获得默许值。
  1. d = { a : 1,  b : 2}print(d.get( c , 3)) # 3
复制代码


免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表