12个Python数据类型转换实战演练

文摘   2024-11-18 20:29   江苏  

在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 = [123]
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**2for x in range(5))

结语

掌握Python中的数据类型转换是成为一个高效程序员的关键。通过不断实践和挑战自己,你将能够更加自信地处理各种数据结构,使你的代码更加健壮和高效。

好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、转发、在看吧!

付费合集推荐

Python编程基础

Python办公自动化-Excel

微信公众号批量上传发布系统

文末福利

公众号消息窗口回复“编程资料”,获取Python编程、人工智能、爬虫等100+本精品电子书。

精品系统

微信公众号批量上传发布系统

关注我👇,精彩不再错过

手把手PythonAI编程
分享与人工智能和python编程语言相关的笔记和项目经历。
 最新文章