編程學習網 > 編程語言 > Python > Python教程:12個Python數據類型轉換實戰演練
2024
07-29

Python教程:12個Python數據類型轉換實戰演練


在Python編程中,數據類型轉換是處理數據時必不可少的技能。掌握如何靈活地在不同類型之間轉換,能讓你的代碼更加高效和靈活。下面,我們將通過一系列實戰演練,學習并實踐12種常見的Python數據類型轉換。


1. 整數轉字符串
實戰案例: 將年齡轉換為字符串,以便在消息中顯示。

age = 25
age_str = str(age)
print("My age is " + age_str)
解釋: 使用str()函數將整數轉換為字符串,便于拼接輸出。

2. 字符串轉整數
實戰案例: 從用戶輸入中獲取年齡,并將其轉換為整數進行計算。

age_input = input("Enter your age: ")
age = int(age_input)
print("In 10 years, you will be " + str(age + 10))
解釋: 使用int()函數將字符串轉換為整數,注意輸入可能是非數字,需加入異常處理。

3. 浮點數轉整數
實戰案例: 計算商品折扣后的價格,保留整數部分。

price = 19.99
discounted_price = int(price * 0.8)
print("Discounted price: $" + str(discounted_price))
解釋: 使用int()函數丟棄小數部分,實現浮點數到整數的轉換。

4. 列表轉字符串
實戰案例: 將購物清單轉換為字符串,方便發送給朋友。

shopping_list = ["apple", "banana", "orange"]
list_str = ", ".join(shopping_list)
print("Shopping list: " + list_str)
解釋: 使用join()方法將列表中的元素連接成一個字符串。

5. 字符串轉列表
實戰案例: 將一段文本按單詞分割,形成單詞列表。

text = "Hello world, this is a test."
words = text.split()
print(words)
解釋: 使用split()方法根據空格將字符串分割成列表。

6. 字典轉列表
實戰案例: 將學生信息字典轉換為列表,以便于進一步處理。

student_info = {"name": "Alice", "age": 20}
info_list = list(student_info.items())
print(info_list)
解釋: 使用items()方法和list()函數將字典轉換為列表,其中每個元素是一個鍵值對元組。

7. 列表轉字典
實戰案例: 將鍵值對列表轉換為字典,用于存儲配置信息。

config_pairs = [("key1", "value1"), ("key2", "value2")]
config_dict = dict(config_pairs)
print(config_dict)
解釋: 使用dict()構造函數將鍵值對列表轉換為字典。

8. 元組轉列表
實戰案例: 將不可變的元組轉換為可修改的列表。

colors = ("red", "green", "blue")
colors_list = list(colors)
colors_list.append("yellow")
print(colors_list)
解釋: 使用list()函數將元組轉換為列表,以便添加新元素。

9. 列表轉元組
實戰案例: 將可修改的列表轉換為不可變的元組,保證數據的一致性。

numbers = [1, 2, 3]
numbers_tuple = tuple(numbers)
print(numbers_tuple)
解釋: 使用tuple()函數將列表轉換為元組。

10. 字符串轉日期
實戰案例: 將生日字符串轉換為日期對象,方便計算年齡。

from datetime import datetime

birthday_str = "1995-01-01"
birthday_date = datetime.strptime(birthday_str, "%Y-%m-%d")
print("Birthday:", birthday_date)
解釋: 使用datetime.strptime()函數將字符串按照指定格式轉換為日期對象。

11. 日期轉字符串
實戰案例: 將當前日期轉換為字符串,用于文件命名。

from datetime import datetime

today = datetime.now()
today_str = today.strftime("%Y%m%d")
print("Today's date:", today_str)
解釋: 使用strftime()函數將日期對象按照指定格式轉換為字符串。

12. 列表轉集合
實戰案例: 將水果列表轉換為集合,去除重復項。

fruits = ["apple", "banana", "apple", "orange"]
unique_fruits = set(fruits)
print(unique_fruits)
解釋: 使用set()函數將列表轉換為集合,自動去除重復元素。

案例1:字符串到整數轉換的陷阱
實戰代碼:

try:
    age_str = "25 years"
    age = int(age_str)
    print("Age:", age)
except ValueError as e:
    print("Error:", e)
輸出:

Error: invalid literal for int() with base 10: '25 years'
分析與技巧: 嘗試將包含非數字字符的字符串轉換為整數會導致ValueError。為避免此類錯誤,可以先使用str.replace()或正則表達式清理字符串。

改進代碼:

import re

age_str = "25 years"
age_str_cleaned = re.sub(r'\D', '', age_str)  # 移除非數字字符
age = int(age_str_cleaned)
print("Age:", age)
案例2:列表到字典轉換的靈活性
實戰代碼:

keys = ["name", "age", "city"]
values = ["John Doe", 30, "New York"]
person_dict = dict(zip(keys, values))
print(person_dict)
輸出:

{'name': 'John Doe', 'age': 30, 'city': 'New York'}
分析與技巧: zip()函數可以將兩個列表合并為一個元組列表,非常適合用于創建字典。如果列表長度不匹配,zip()會以最短的列表為準,多余的元素會被忽略。要避免這種情況,可以使用zip_longest()函數(需要導入itertools模塊)。

改進代碼:

from itertools import zip_longest

keys = ["name", "age", "city", "country"]
values = ["John Doe", 30, "New York"]
person_dict = dict(zip_longest(keys, values, fillvalue=None))
print(person_dict)
案例3:列表與元組之間的轉換
實戰代碼:

colors = ["red", "green", "blue"]
colors_tuple = tuple(colors)
colors_list = list(colors_tuple)
分析與技巧: 列表和元組之間的轉換非常直接,但理解它們的區別很重要。列表是可變的,而元組是不可變的。選擇合適的數據結構對于優化性能和保證數據完整性至關重要。

練習技巧: 嘗試用不同的方式創建列表和元組,比如使用列表推導式或生成器表達式。例如:

squares = [x**2 for x in range(5)]
square_tuples = tuple((x, x**2) for x in range(5))
結語

掌握Python中的數據類型轉換是成為一個高效程序員的關鍵。通過不斷實踐和挑戰自己,你將能夠更加自信地處理各種數據結構,使你的代碼更加健壯和高效。

以上就是Python教程:12個Python數據類型轉換實戰演練的詳細內容,想要了解更多Python教程歡迎持續關注編程學習網。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取