python-3.x - 寻找一种方法来压缩这段代码
问题描述
我正在尝试学习如何压缩我正在编写的代码。目标是打印出列表的对象,以反向或常规顺序排序,一次“lchar”一行。这段代码可以完成这项工作,但我相信有一种方法可以清理它。
lchar = list()
for key,val in list(wd.items()):
lchar.append((val,key))
lchar.sort(reverse=True)
for key,val in lchar:
print(key,val)
有没有办法压缩此代码,以便我可以在将其附加到列表“lchar”的同一行对其进行排序,并在同一代码块中逐行打印元组?
解决方案
无需一一插入每个元素。只需从字典中检索项目,对它们进行排序并分配它们。请注意, sorted 创建了一个列表。映射反转列表中元素的顺序。
lchar = sorted(map(lambda p: (p[1],p[0]), wd.items()))
您也可以使用理解,但我发现它们的可读性较差:
lchar = sorted(((v,k) for k, v in wd.items()))
它将创建您可以打印的对列表
for key,val in lchar:
print(key,val)
推荐阅读
- kubernetes - Kubernetes Pod 卡在“终止”状态
- reactjs - 如何使用按钮重置字段,是否有更简洁的方式来编写此 React
- android - 在更改构建 gradle 后尝试几天构建我的应用程序时出现太多异常
- c - pthread_cond_signal 可以唤醒多个线程吗?
- ios - 从 tableview 到 viewcontroller 执行 segue 的问题
- java - 类型不匹配:尝试将驱动程序设置为 ITestContext 时无法从 void 转换为 ITestContext
- javascript - 在 jquery 密码显示/隐藏 if-else 条件不适用于按钮 cick
- react-native - 想要在 React native 0.55.1 中获取当前位置
- google-app-engine - 0$ 的 GAE 消费限额有效吗?
- python - python成员变量列表不是最新的