如何对字典列表使用join方法,生成指定格式的字符串输出?
问题描述
现有如下Python字典列表:
list1 = [ {'unique_id': '1qaz2wsx', 'db_id': 10}, {'unique_id': '2qaz2wsx', 'db_id': 20}, {'unique_id': '3qaz2wsx', 'db_id': 30}, {'unique_id': '4qaz2wsx', 'db_id': 40}, ]
需要生成如下格式的输出:
unique 1qaz2wsx, url http://url.com/10 unique 2qaz2wsx, url http://url.com/20 unique 3qaz2wsx, url http://url.com/30 unique 4qaz2wsx, url http://url.com/40
实现方法
通过遍历字典列表,提取每个字典中的unique_id和db_id字段,按指定格式拼接字符串即可实现需求,以下是几种简单的实现方式:
方法1:普通for循环遍历
这是最直观的实现方式,逐个遍历列表中的字典,提取字段后格式化输出:
list1 = [ {'unique_id': '1qaz2wsx', 'db_id': 10}, {'unique_id': '2qaz2wsx', 'db_id': 20}, {'unique_id': '3qaz2wsx', 'db_id': 30}, {'unique_id': '4qaz2wsx', 'db_id': 40}, ] for item in list1: print(f"unique {item['unique_id']}, url http://url.com/{item['db_id']}")
方法2:列表推导式批量生成后输出
如果需要先生成所有输出字符串再统一处理,可使用列表推导式:
list1 = [ {'unique_id': '1qaz2wsx', 'db_id': 10}, {'unique_id': '2qaz2wsx', 'db_id': 20}, {'unique_id': '3qaz2wsx', 'db_id': 30}, {'unique_id': '4qaz2wsx', 'db_id': 40}, ] output_lines = [f"unique {item['unique_id']}, url http://url.com/{item['db_id']}" for item in list1] # 逐行打印 for line in output_lines: print(line) # 或者一次性打印所有行 print('\n'.join(output_lines))
方法3:format()方法格式化字符串
若习惯使用format()而非f-string,可采用这种写法:
list1 = [ {'unique_id': '1qaz2wsx', 'db_id': 10}, {'unique_id': '2qaz2wsx', 'db_id': 20}, {'unique_id': '3qaz2wsx', 'db_id': 30}, {'unique_id': '4qaz2wsx', 'db_id': 40}, ] for item in list1: print("unique {}, url http://url.com/{}".format(item['unique_id'], item['db_id']))
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

