面试题答案
一键面试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))
- 函数定义:定义
format_complex_data
函数,接受一个复杂数据结构(这里假设为字典)作为参数。 - 初始化结果列表:创建一个空列表
result
,用于存储格式化后的每一项。 - 遍历字典:使用
for
循环遍历字典的键值对。 - 处理列表类型:如果值是列表类型,使用
join
方法将列表元素用、
连接成字符串。 - 处理其他类型:对于其他类型,直接将其转换为字符串。
- 处理键的转换:根据键的值,将
name
转换为姓名
,age
转换为年龄
,hobbies
转换为爱好
,其他键保持不变。 - 格式化每一项:使用
%s
占位符将键和值格式化为键:值
的形式,并添加到result
列表中。 - 返回最终结果:使用
join
方法将result
列表中的所有项用,
连接成一个字符串并返回。 - 示例调用:定义示例数据并调用函数输出结果。
通过以上代码,可以将给定格式的嵌套字典按照要求格式化为字符串,并且通过类型判断等方式确保了代码的健壮性和通用性。