MST
星途 面试题库

面试题:深入探究Python中%s占位符在复杂数据结构格式化中的应用

假设你有一个复杂的数据结构,例如一个嵌套字典,其中包含不同类型的数据(字符串、数字、列表等)。要求使用%s占位符,编写一个通用函数,将这个复杂数据结构按照一定的格式规则,格式化输出为一个字符串。例如,对于字典 {'name': '张三', 'age': 30, 'hobbies': ['阅读', '跑步']},输出格式为'姓名:张三,年龄:30,爱好:阅读、跑步'。需要考虑如何处理不同数据类型在%s占位符格式化时的转换问题,以及如何确保代码的健壮性和通用性。
43.4万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def format_complex_data(data):
    result = []
    for key, value in data.items():
        if isinstance(value, list):
            value_str = '、'.join(str(v) for v in value)
        else:
            value_str = str(value)
        if key == 'name':
            key_str = '姓名'
        elif key == 'age':
            key_str = '年龄'
        elif key == 'hobbies':
            key_str = '爱好'
        else:
            key_str = key
        result.append('%s:%s' % (key_str, value_str))
    return ','.join(result)


data = {'name': '张三', 'age': 30, 'hobbies': ['阅读', '跑步']}
print(format_complex_data(data))
  1. 函数定义:定义format_complex_data函数,接受一个复杂数据结构(这里假设为字典)作为参数。
  2. 初始化结果列表:创建一个空列表result,用于存储格式化后的每一项。
  3. 遍历字典:使用for循环遍历字典的键值对。
  4. 处理列表类型:如果值是列表类型,使用join方法将列表元素用连接成字符串。
  5. 处理其他类型:对于其他类型,直接将其转换为字符串。
  6. 处理键的转换:根据键的值,将name转换为姓名age转换为年龄hobbies转换为爱好,其他键保持不变。
  7. 格式化每一项:使用%s占位符将键和值格式化为键:值的形式,并添加到result列表中。
  8. 返回最终结果:使用join方法将result列表中的所有项用连接成一个字符串并返回。
  9. 示例调用:定义示例数据并调用函数输出结果。

通过以上代码,可以将给定格式的嵌套字典按照要求格式化为字符串,并且通过类型判断等方式确保了代码的健壮性和通用性。