程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

總結了30段極簡的Python代碼!(一)

編輯:Python

學 Python 怎樣才最快,當然是實戰各種小項目,只有自己去想與寫,才記得住規則。今天給大家分享的是 15個極簡任務,初學者可以嘗試著自己實現;Python 開發者也可以看看是不是有沒想到的用法。

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.內存占用

下面的代碼塊可以檢查變量 variable 所占用的內存。

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 次字符串。

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

6.大寫第一個字母

以下代碼塊會使用 title() 方法,從而大寫字符串中每一個單詞的首字母。

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

7.分塊

給定具體的大小,定義一個函數以按照這個大小切割列表。

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.壓縮

這個方法可以將布爾型的值去掉,例如(False, None, 0, ""),它使用 filter() 函數。

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) # 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.列表的差

該方法將返回第一個列表的元素,其不在第二個列表內。如果同時要反饋第二個列表獨有的元素,還需要加一句 set_b.difference(set_a)。

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]

-END-

掃碼添加請備注:python,進群與宋老師面對面交流:517745409

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved