Python集合数据打印问题:按指定格式输出两个集合内容
搞定你的Python字典打印需求
嘿,兄弟,先提个小细节:你写的l和m其实是Python里的字典(dictionary),不是集合(set)哦~集合是没有键值对结构的,不过这不影响咱们实现你要的效果!
要实现「编号、字典l的数据、字典m的数据」的连续打印格式,咱们可以这么做:
分步实现版(适合新手理解)
# 先定义你的两个字典 l = {'7': 44, '8': 65, '9': 66, '10': 50, '11': 61, '12': 62, '13': 53, '14': 78, '15': 61, '16': 23} m = {'7': 39, '8': 58, '9': 57, '10': 59, '11': 55, '12': 59, '13': 74, '14': 51, '15': 60, '16': 30} # 对字典的键进行排序(因为键是字符串数字,用key=int确保按数字顺序排列) sorted_keys = sorted(l.keys(), key=int) # 收集所有需要打印的内容 output_items = [] for key in sorted_keys: output_items.append(key) # 加入编号 output_items.append(str(l[key])) # 加入l对应的数据 output_items.append(str(m[key])) # 加入m对应的数据 # 用空格连接所有元素并打印 print(' '.join(output_items))
一行简化版(适合快速实现)
如果觉得上面的步骤太繁琐,也可以用列表推导式把代码压缩成一行:
l = {'7': 44, '8': 65, '9': 66, '10': 50, '11': 61, '12': 62, '13': 53, '14': 78, '15': 61, '16': 23} m = {'7': 39, '8': 58, '9': 57, '10': 59, '11': 55, '12': 59, '13': 74, '14': 51, '15': 60, '16': 30} print(' '.join([item for key in sorted(l.keys(), key=int) for item in [key, str(l[key]), str(m[key])]]))
关键说明
为什么要排序?因为虽然Python 3.7+的字典默认是插入有序的,但你的键是字符串类型的数字(比如'7'、'10'),如果直接排序字符串,'10'会排在'7'前面,不符合咱们要的数字顺序。用key=int可以把字符串键转换成整数来排序,保证输出是从7到16的顺序。
运行上面的代码,你就能得到和预期示例一致的连续格式输出啦。
内容的提问来源于stack exchange,提问作者Ádám Papp
相关产品推荐
相关产品推荐

