成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你必須掌握的 30 個 Python 代碼,短小精悍,用處無窮

開發 前端
Python 語言的核心語法細節,涵蓋了從基本的字符串操作、列表和字典操作、異常處理、時間計算、內存占用檢查、生成器、質數判斷、字符計數、列表交集、字典排序、文件操作等方面。熟悉這些語法細節可以大大提高你在編程中的效率和代碼的可讀性。

1. 字符串的翻轉

字符串的翻轉,首先最簡單的方法就是利用切片的操作,來實現翻轉,其次可以利用 reduce 函數來實現翻轉,在 Python 3 中,reduce 函數需要從 functools 中進行導入。

示例:

# 使用切片翻轉字符串
original_str = "hello"
reversed_str = original_str[::-1]
print("翻轉后的字符串:", reversed_str)  # 輸出 翻轉后的字符串: olleh
# 使用 reduce 函數翻轉字符串
from functools import reduce
reversed_str = reduce(lambda x, y: y + x, original_str)
print("翻轉后的字符串:", reversed_str)  # 輸出 翻轉后的字符串: olleh

解釋:

切片操作 [::-1] 可以快速翻轉字符串。

reduce 函數通過累積操作將字符串翻轉。

2. 判斷字符串是否是回文

該例也可以看作是第一例的應用,利用字符串的翻轉來判斷字符是否是回文字符串。

示例:

def is_palindrome(s):
    return s == s[::-1]
test_str = "madam"
if is_palindrome(test_str):
    print(f"{test_str} 是回文字符串。")  # 輸出 madam 是回文字符串。
else:
    print(f"{test_str} 不是回文字符串。")

解釋:

回文字符串是指正讀和反讀都一樣的字符串。

使用切片操作 [::-1] 翻轉字符串并進行比較。

3. 單詞大小寫

面對一個字符串,想將里面的單詞首字母大寫,只需要調用 title() 函數,而所有的字母大寫只需要調用 upper() 函數,字符串首字母大寫則是調用 capitalize() 函數即可。

示例:

original_str = "hello world"
# 首字母大寫
capitalized_str = original_str.capitalize()
print("首字母大寫:", capitalized_str)  # 輸出 首字母大寫: Hello world
# 所有單詞首字母大寫
title_str = original_str.title()
print("所有單詞首字母大寫:", title_str)  # 輸出 所有單詞首字母大寫: Hello World
# 所有字母大寫
upper_str = original_str.upper()
print("所有字母大寫:", upper_str)  # 輸出 所有字母大寫: HELLO WORLD

解釋:

capitalize() 方法將字符串的首字母大寫。

title() 方法將字符串中每個單詞的首字母大寫。

upper() 方法將字符串中的所有字母大寫。

4. 字符串的拆分

字符串的拆分可以直接利用 split 函數,進行實現,返回的是列表,而 strip 函數用于移除字符串頭尾指定的字符(默認為空格或換行符)。

示例:

# 拆分字符串
sentence = "hello world this is python"
words = sentence.split()
print("拆分后的單詞:", words)  # 輸出 拆分后的單詞: ['hello', 'world', 'this', 'is', 'python']
# 移除字符串頭尾的空格
trimmed_str = "   hello world   ".strip()
print("移除空格后的字符串:", trimmed_str)  # 輸出 移除空格后的字符串: hello world

解釋:

split() 方法將字符串按空格拆分為單詞列表。

strip() 方法移除字符串頭尾的空格。

5. 將列表中的字符串合并

這一條可以認為是第 4 條的反例,這里是將列表中的字符串合并為字符串。第 4 條可以與第 5 條結合,來去除字符串中不想留下的項。

示例:

# 合并列表中的字符串
words = ["hello", "world", "this", "is", "python"]
sentence = " ".join(words)
print("合并后的字符串:", sentence)  # 輸出 合并后的字符串: hello world this is python

解釋:

join() 方法將列表中的字符串用指定的分隔符連接成一個字符串。

6. 尋找字符串中唯一的元素

在 Python 中,對于唯一值的篩查,首先應該想到對于 set 的利用,set 可以幫助我們快速的篩查重復的元素,上述程序中,set 不僅可以對字符串,而且還可以針對列表進行篩查。

示例:

# 尋找字符串中的唯一元素
original_str = "hello"
unique_chars = set(original_str)
print("唯一字符:", unique_chars)  # 輸出 唯一字符: {'l', 'o', 'h', 'e'}
# 尋找列表中的唯一元素
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_items = set(original_list)
print("唯一元素:", unique_items)  # 輸出 唯一元素: {1, 2, 3, 4, 5}

解釋:

set 是一種無序不重復的集合,可以快速去重。

7. 將元素進行重復

將元素進行重復,可以采用“乘法”的形式,直接乘以原來的元素,也可以采用“加法”的形式,更方便理解。

示例:

# 使用乘法重復元素
repeated_list = [1, 2] * 3
print("重復后的列表:", repeated_list)  # 輸出 重復后的列表: [1, 2, 1, 2, 1, 2]
# 使用加法重復元素
repeated_list = [1, 2] + [1, 2] + [1, 2]
print("重復后的列表:", repeated_list)  # 輸出 重復后的列表: [1, 2, 1, 2, 1, 2]

解釋:

列表的乘法操作可以重復列表中的元素。

列表的加法操作可以將多個列表合并。

8. 基于列表的擴展

基于列表的擴展,可以充分利用列表的特性和 Python 語法的簡潔性,來產生新的列表,或者將嵌套的列表進行展開。

示例:

# 生成新的列表
squares = [x ** 2 for x in range(5)]
print("平方數:", squares)  # 輸出 平方數: [0, 1, 4, 9, 16]
# 展開嵌套的列表
nested_list = [[1, 2], [3, 4], [5, 6]]
flattened_list = [item for sublist in nested_list for item in sublist]
print("展開后的列表:", flattened_list)  # 輸出 展開后的列表: [1, 2, 3, 4, 5, 6]

解釋:

列表推導式可以生成新的列表。

嵌套的列表推導式可以將嵌套的列表展開。

9. 將列表展開

首先,方法 1 中,我們調用的是 iteration_utilities 中的 deepflatten 函數,第二種方法直接采用遞歸的方法,我們自己來實現復雜列表的展平,便可以得到展開后的列表。

示例:

# 使用 deepflatten 函數
from iteration_utilities import deepflatten
nested_list = [1, [2, [3, 4], 5], 6]
flattened_list = list(deepflatten(nested_list))
print("展開后的列表:", flattened_list)  # 輸出 展開后的列表: [1, 2, 3, 4, 5, 6]
# 使用遞歸方法
def flatten(lst):
    result = []
    for item in lst:
        if isinstance(item, list):
            result.extend(flatten(item))
        else:
            result.append(item)
    return result
nested_list = [1, [2, [3, 4], 5], 6]
flattened_list = flatten(nested_list)
print("展開后的列表:", flattened_list)  # 輸出 展開后的列表: [1, 2, 3, 4, 5, 6]

解釋:

deepflatten 函數可以遞歸地展平嵌套列表。

遞歸方法通過逐層展開嵌套列表來實現展平。

10. 二值交換

Python 中的二值交換,可以直接采用交換的方式,如上圖的方法 1,而方法 2 所示的方法,借助第三個變量,來實現了兩個數值的交換。

示例:

# 直接交換
a, b = 5, 10
a, b = b, a
print("交換后的值: a =", a, "b =", b)  # 輸出 交換后的值: a = 10 b = 5
# 使用第三個變量交換
a, b = 5, 10
temp = a
a = b
b = temp
print("交換后的值: a =", a, "b =", b)  # 輸出 交換后的值: a = 10 b = 5

解釋:

直接交換使用多重賦值來交換兩個變量的值。

使用第三個變量交換通過臨時變量來交換兩個變量的值。

11. 統計列表中元素的頻率

我們可以直接調用 collections 中的 Counter 類來統計元素的數量,當然也可以自己來實現這樣的統計,但是從簡潔性來講,還是以 Counter 的使用比較方便。

示例:

from collections import Counter
# 使用 Counter 統計頻率
items = [1, 2, 2, 3, 4, 4, 4]
counter = Counter(items)
print("元素頻率:", counter)  # 輸出 元素頻率: Counter({4: 3, 2: 2, 1: 1, 3: 1})
# 自己實現統計頻率
frequency = {}
for item in items:
    if item in frequency:
        frequency[item] += 1
    else:
        frequency[item] = 1
print("元素頻率:", frequency)  # 輸出 元素頻率: {1: 1, 2: 2, 3: 1, 4: 3}

解釋:

Counter 類可以快速統計列表中元素的頻率。

自己實現統計頻率通過字典來記錄每個元素出現的次數。

12. 判斷字符串所含元素是否相同

Counter 函數還可以用來判斷字符串中包含的元素是否相同,無論字符串中元素順序如何,只要包含相同的元素和數量,就認為其是相同的。

示例:

from collections import Counter
# 判斷字符串是否包含相同的元素
str1 = "abc"
str2 = "cba"
str3 = "abcd"
if Counter(str1) == Counter(str2):
    print(f"{str1} 和 {str2} 包含相同的元素。")  # 輸出 abc 和 cba 包含相同的元素。
else:
    print(f"{str1} 和 {str2} 不包含相同的元素。")
if Counter(str1) == Counter(str3):
    print(f"{str1} 和 {str3} 包含相同的元素。")
else:
    print(f"{str1} 和 {str3} 不包含相同的元素。")  # 輸出 abc 和 abcd 不包含相同的元素。

解釋:

Counter 對象可以比較兩個字符串中元素的頻率,從而判斷它們是否包含相同的元素。

13. 將數字字符串轉化為數字列表

上述程序中,方法 1 利用的 map 函數,map 函數可以將 str19 中的每個元素都執行 int 函數,其返回的是一個迭代器,利用 list 函數來將其轉化為列表的形式。注意,在 Python 2 中執行 map 函數就會直接返回列表,而 Python 3 做了優化,返回的是迭代器,節省了內存。

示例:

# 使用 map 函數
str19 = "1 2 3 4 5"
num_list = list(map(int, str19.split()))
print("數字列表:", num_list)  # 輸出 數字列表: [1, 2, 3, 4, 5]
# 使用列表推導式
num_list = [int(num) for num in str19.split()]
print("數字列表:", num_list)  # 輸出 數字列表: [1, 2, 3, 4, 5]

解釋:

map 函數將字符串中的每個元素轉換為整數。

列表推導式也可以實現相同的功能,更加簡潔。

14. 使用 try-except-finally 模塊

當我們在執行程序時,可能會遇到某些不可預知的錯誤,使用 try-except 可以幫助我們去捕獲這些錯誤,然后輸出提示。注意,如果需要程序無論是否出錯,都要執行一些程序的話,需要利用 finally 來實現。

示例:

# 使用 try-except-finally
try:
    num = int(input("請輸入一個數字: "))
    result = 10 / num
    print("結果:", result)
except ZeroDivisionError:
    print("不能除以零。")
except ValueError:
    print("無效輸入。")
finally:
    print("程序結束。")

解釋:

try 塊用于嘗試可能引發異常的代碼。

except 塊用于捕獲并處理異常。

finally 塊無論是否有異常都會執行。

15. 使用 enumerate() 函數來獲取索引-數值對

enumerate() 函數用于將一個可遍歷的數據對象(如上圖的列表,字符串)組合為一個索引序列。

示例:

# 使用 enumerate 函數
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"索引: {index}, 水果: {fruit}")
# 輸出
# 索引: 0, 水果: apple
# 索引: 1, 水果: banana
# 索引: 2, 水果: cherry

解釋:

enumerate 函數返回一個包含索引和值的枚舉對象。

16. 代碼執行消耗時間

利用 time 函數,在核心程序開始前記住當前時間點,然后在程序結束后計算當前時間點和核心程序開始前的時間差,可以幫助我們計算程序執行所消耗的時間。

示例:

import time
# 計算代碼執行時間
start_time = time.time()
# 核心代碼
time.sleep(2)
end_time = time.time()
execution_time = end_time - start_time
print("代碼執行時間:", execution_time, "秒")  # 輸出 代碼執行時間: 2.00012345 秒

解釋:

time.time() 返回當前時間戳。

通過計算開始時間和結束時間的差值來獲取代碼執行時間。

17. 檢查對象的內存占用情況

在 Python 中可以使用 sys.getsizeof 來查看元素所占內存的大小。

示例:

import sys
# 檢查對象的內存占用
num = 10
str1 = "hello"
list1 = [1, 2, 3]
print("數字占用內存:", sys.getsizeof(num), "字節")  # 輸出 數字占用內存: 28 字節
print("字符串占用內存:", sys.getsizeof(str1), "字節")  # 輸出 字符串占用內存: 54 字節
print("列表占用內存:", sys.getsizeof(list1), "字節")  # 輸出 列表占用內存: 88 字節

解釋:

sys.getsizeof 函數返回對象在內存中占用的字節數。

18. 字典的合并

在 Python 3 中,提供了新的合并字典的方式,如方法 1 所示,此外 Python 3 還保留了 Python 2 的合并字典的方式,如方法 2 所示。

示例:

# 使用新的合并方式
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = {**dict1, **dict2}
print("合并后的字典:", merged_dict)  # 輸出 合并后的字典: {'a': 1, 'b': 3, 'c': 4}
# 使用 update 方法
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2)
print("合并后的字典:", dict1)  # 輸出 合并后的字典: {'a': 1, 'b': 3, 'c': 4}

解釋:

使用解包操作 {**dict1, **dict2} 可以合并兩個字典。

update 方法在原字典上添加另一個字典的鍵值對。

19. 隨機采樣

使用 random.sample 函數,可以從一個序列中選擇 n_samples 個隨機且獨立的元素。

示例:

import random
# 隨機采樣
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sampled_items = random.sample(items, 5)
print("隨機采樣的元素:", sampled_items)  # 輸出 隨機采樣的元素: [2, 5, 3, 7, 9]

解釋:

random.sample 函數從列表中隨機選擇指定數量的元素。

20. 檢查唯一性

通過檢查列表長度是否與 set 后的列表長度一致,來判斷列表中的元素是否是獨一無二的。

示例:

# 檢查列表中的元素是否唯一
items = [1, 2, 3, 4, 5]
if len(items) == len(set(items)):
    print("列表中的元素是唯一的。")  # 輸出 列表中的元素是唯一的。
else:
    print("列表中的元素不是唯一的。")
items = [1, 2, 2, 3, 4, 5]
if len(items) == len(set(items)):
    print("列表中的元素是唯一的。")
else:
    print("列表中的元素不是唯一的。")  # 輸出 列表中的元素不是唯一的。

解釋:

set 去重后,如果長度與原列表長度相同,則說明列表中的元素是唯一的。

21. 生成斐波那契數列

生成斐波那契數列是一個經典的編程問題,可以使用生成器來實現。

示例:

# 生成斐波那契數列
def fibonacci(n):
    a, b = 0, 1
    while a < n:
        yield a
        a, b = b, a + b
# 使用生成器
for num in fibonacci(10):
    print(num)
# 輸出
# 0
# 1
# 1
# 2
# 3
# 5
# 8

解釋:

使用 yield 關鍵字定義生成器函數。

生成器函數每次調用時返回一個值,并保留狀態。

22. 計算列表的平均值

計算列表中所有元素的平均值是一個常見的需求,可以使用簡單的數學運算來實現。

示例:

# 計算列表的平均值
numbers = [1, 2, 3, 4, 5]
average = sum(numbers) / len(numbers)
print("平均值:", average)  # 輸出 平均值: 3.0

解釋:

sum() 函數計算列表中所有元素的總和。

len() 函數返回列表的長度。

平均值通過總和除以長度來計算。

23. 判斷一個數是否為質數

判斷一個數是否為質數是另一個經典的編程問題,可以通過檢查該數是否能被小于其平方根的任何數整除來實現。

示例:

# 判斷一個數是否為質數
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True
# 測試
num = 17
if is_prime(num):
    print(f"{num} 是質數。")  # 輸出 17 是質數。
else:
    print(f"{num} 不是質數。")

解釋:

質數是大于 1 且只能被 1 和自身整除的自然數。

通過檢查小于等于其平方根的所有數來判斷是否為質數。

24. 計算字符串中每個字符的出現次數

計算字符串中每個字符的出現次數可以使用 collections.Counter 類來實現。

示例:

from collections import Counter
# 計算字符串中每個字符的出現次數
text = "hello world"
char_count = Counter(text)
print("字符出現次數:", char_count)  # 輸出 字符出現次數: Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})

解釋:

Counter 類可以快速統計字符串中每個字符的出現次數。

25. 檢查兩個列表是否有共同元素

檢查兩個列表是否有共同元素可以通過集合的交集操作來實現。

示例:

# 檢查兩個列表是否有共同元素
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
common_elements = set(list1) & set(list2)
if common_elements:
    print("兩個列表有共同元素:", common_elements)  # 輸出 兩個列表有共同元素: {4, 5}
else:
    print("兩個列表沒有共同元素。")

解釋:

將列表轉換為集合,然后使用交集操作 & 來檢查共同元素。

26. 將字典按值排序

將字典按值排序可以使用 sorted 函數和 lambda 表達式來實現。

示例:

# 將字典按值排序
scores = {"Alice": 95, "Bob": 85, "Charlie": 90}
sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
print("按值排序后的字典:", sorted_scores)  # 輸出 按值排序后的字典: [('Alice', 95), ('Charlie', 90), ('Bob', 85)]

解釋:

sorted 函數可以對字典的項進行排序。

key=lambda x: x[1] 指定按值排序。

reverse=True 指定降序排序。

27. 從字典中刪除指定的鍵

從字典中刪除指定的鍵可以使用 pop 方法或 del 語句來實現。

示例:

# 從字典中刪除指定的鍵
scores = {"Alice": 95, "Bob": 85, "Charlie": 90}
# 使用 pop 方法
removed_value = scores.pop("Bob")
print("刪除后的字典:", scores)  # 輸出 刪除后的字典: {'Alice': 95, 'Charlie': 90}
print("刪除的值:", removed_value)  # 輸出 刪除的值: 85
# 使用 del 語句
del scores["Charlie"]
print("刪除后的字典:", scores)  # 輸出 刪除后的字典: {'Alice': 95}

解釋:

pop 方法刪除指定鍵并返回對應的值。

del 語句刪除指定鍵。

28. 檢查文件是否存在

檢查文件是否存在可以使用 os.path.exists 函數來實現。

示例:

import os
# 檢查文件是否存在
file_path = "example.txt"
if os.path.exists(file_path):
    print("文件存在。")
else:
    print("文件不存在。")

解釋:

os.path.exists 函數檢查指定路徑的文件是否存在。

29. 讀取文件的每一行

讀取文件的每一行可以使用 with 語句和 for 循環來實現。

示例:

# 讀取文件的每一行
file_path = "example.txt"
with open(file_path, 'r', encoding='utf-8') as file:
    for line in file:
        print("行內容:", line.strip())  # 輸出 行內容: 你好,世界!

解釋:

with 語句確保文件在操作完成后自動關閉。

for 循環逐行讀取文件內容。

30. 將列表中的元素轉換為字符串

將列表中的元素轉換為字符串可以使用 map 函數和 join 方法來實現。

示例:

# 將列表中的元素轉換為字符串
numbers = [1, 2, 3, 4, 5]
str_numbers = ", ".join(map(str, numbers))
print("轉換后的字符串:", str_numbers)  # 輸出 轉換后的字符串: 1, 2, 3, 4, 5

解釋:

map 函數將列表中的每個元素轉換為字符串。

join 方法將列表中的字符串用逗號和空格連接成一個字符串。

總結

以上是 Python 語言的核心語法細節,涵蓋了從基本的字符串操作、列表和字典操作、異常處理、時間計算、內存占用檢查、生成器、質數判斷、字符計數、列表交集、字典排序、文件操作等方面。熟悉這些語法細節可以大大提高你在編程中的效率和代碼的可讀性。

責任編輯:武曉燕 來源: 測試開發學習交流
相關推薦

2020-03-03 14:55:03

Python代碼編程語言

2020-03-03 10:18:42

Python數據程序員

2020-12-30 19:08:16

Python編程程序段

2021-06-08 09:36:20

Python代碼內存

2022-04-25 08:43:47

pandas代碼Python

2023-12-06 09:49:36

自動駕駛算法

2021-04-12 15:34:33

C語言printfscanf

2021-12-19 22:48:53

JavaScript開發代碼

2020-12-10 11:00:37

JavaJVM命令

2017-11-23 15:24:35

Python速覽實戰

2024-09-13 09:59:27

2020-09-15 08:53:08

parallelStr表達式函數

2020-04-08 17:10:03

GitHub代碼開源

2018-06-21 11:03:54

shelllinux命令

2019-06-24 09:57:39

網絡工具調試

2012-05-22 00:55:44

代碼工具CodeMirror

2010-07-16 14:00:07

喬布斯

2019-06-20 17:39:12

Android啟動優化

2021-07-18 08:23:47

校招git編程

2023-01-13 08:54:20

MySQL數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情视频一区二区三区在线播放 | 黄色免费观看网站 | 国产日韩一区二区 | 久久国产高清视频 | 久久精品国产一区二区三区不卡 | 91欧美激情一区二区三区成人 | 精品三级在线观看 | 我我色综合 | 欧美激情视频一区二区三区在线播放 | 欧美激情一区二区三区 | 久久人人网 | 岛国av一区二区三区 | 久热精品视频 | 天堂网中文字幕在线观看 | 免费中文字幕日韩欧美 | 888久久久| 91国产在线视频在线 | 国产乱性 | 欧美精品一区在线 | 毛片高清 | 四虎成人免费电影 | 国产精品视频一区二区三区 | 国产一区二区在线免费观看 | 成人av电影网 | 国户精品久久久久久久久久久不卡 | 中文字幕久久精品 | 免费黄色片视频 | 欧美日韩网站 | 国内精品一区二区三区 | 一区二区日韩 | 在线观看视频h | 国产69久久精品成人看动漫 | 欧美 日韩 视频 | 日韩一区二区av | 高清视频一区二区三区 | 国产视频久久久 | 国产精品日日做人人爱 | 亚洲精品电影网在线观看 | 精品久久久久一区二区国产 | 亚洲一区二区视频在线播放 | 日本韩国电影免费观看 |