• 总结了30段极简的Python代码!(一)


    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则。今天给大家分享的是 15个极简任务,初学者可以尝试着自己实现;Python 开发者也可以看看是不是有没想到的用法。

    1.重复元素判定

    以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素。

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

    2.字符元素组成判定

    检查两个字符串的组成元素是不是一样的。

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

    3.内存占用

    下面的代码块可以检查变量 variable 所占用的内存。

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

    4.字节占用

    下面的代码块可以检查字符串占用的字节数。

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

    5.打印 N 次字符串

    该代码块不需要循环语句就能打印 N 次字符串。

    1. n = 2
    2. s ="Programming"
    3. print(s * n);
    4. # ProgrammingProgramming

    6.大写第一个字母

    以下代码块会使用 title() 方法,从而大写字符串中每一个单词的首字母。

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

    7.分块

    给定具体的大小,定义一个函数以按照这个大小切割列表。

    1. from math import ceil
    2. def chunk(lst, size):
    3.     return list(
    4.         map(lambda x: lst[x * size:x * size + size],
    5.             list(range(0, ceil(len(lst) / size)))))
    6. chunk([1,2,3,4,5],2)
    7. # [[1,2],[3,4],5]

    8.压缩

    这个方法可以将布尔型的值去掉,例如(False, None, 0, ""),它使用 filter() 函数。

    1. def compact(lst):
    2.     return list(filter(bool, lst))
    3. compact([01False2''3'a''s'34])
    4. # [ 1, 2, 3, 'a', 's', 34 ]

    9.解包

    如下代码段可以将打包好的成对列表解开成两组不同的元组。

    1. array = [['a''b'], ['c''d'], ['e''f']]
    2. transposed = zip(*array)
    3. print(transposed)
    4. # [('a''c''e'), ('b''d''f')]

    10.链式对比

    我们可以在一行代码中使用不同的运算符对比多个不同的元素。

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

    11.逗号连接

    下面的代码可以将列表连接成单个字符串,且每一个元素间的分隔方式设置为了逗号。

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

    12.元音统计

    以下方法将统计字符串中的元音(‘a’, ‘e’, ‘i’, ‘o’, ‘u’)的个数,它是通过正则表达式做的。

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

    13.首字母小写

    如下方法将令给定字符串的第一个字符统一为小写。

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

    14.展开列表

    该方法将通过递归的方式将列表的嵌套展开为单个列表。

    1. def spread(arg):
    2.     ret = []
    3.     for i in arg:
    4.         if isinstance(i, list):
    5.             ret.extend(i)
    6.         else:
    7.             ret.append(i)
    8.     return ret
    9. def deep_flatten(lst):
    10.     result = []
    11.     result.extend(
    12.         spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))
    13.     return result
    14. deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]

    15.列表的差

    该方法将返回第一个列表的元素,其不在第二个列表内。如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。

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

    -END-

    扫码添加请备注:python,进群与宋老师面对面交流:517745409

     

  • 相关阅读:
    LabVIEW电表改装与校准仿真系统
    【基础篇】Redis深入理解与实践指南(一)之Redis的前世今生
    【力扣10天SQL入门】Day3
    YAYA LIVE CTO 唐鸿斌:真正本地化,要让产品没有「产地」属性
    io测试【FPGA】
    批量替换Word中的表格为图片并保存
    【Unity程序技巧】Unity中的单例模式的运用
    正则表达式
    免杀对抗-java语言-shellcode免杀-源码修改+打包exe
    C/C++内存管理(栈、堆区;malloc,new;内存泄漏等)
  • 原文地址:https://blog.csdn.net/qiqi1220/article/details/126136156