python - 在 Python 中按坐标和字母元组排序和过滤
问题描述
我在排序和过滤坐标和字母列表时遇到问题。我尝试使用 lambda,但由于我对它没有太多经验,所以没有走多远。
我有一个坐标元组列表和一个与该元组一起的字母,例如:
[((392, 100), 'e'), ((326, 100), 'u'), ((326, 101), 'a'), ((312, 101), 'i')]
我想对坐标进行排序,以便我可以按行的顺序以降序方式获取它们,因此先降序 y,然后降序 x。换句话说,我需要它们的顺序与您阅读文本的顺序相同:开始和最左边的坐标是向下和向右。结果应该是:
[((326, 100), 'u'), ((392, 100), 'e'), ((313, 101), 'i'), ((326, 101), 'a')]
然后按照我得到的顺序过滤掉字母,所以最终的结果是
'ueia'
解决方案
data = [((392, 100), 'e'), ((326, 100), 'u'), ((326, 101), 'a'), ((312, 101), 'i')]
print( sorted(data, key=lambda k: k[0][::-1] ) )
印刷:
[((326, 100), 'u'), ((392, 100), 'e'), ((312, 101), 'i'), ((326, 101), 'a')]
对于字母:
print( ''.join(ch for _, ch in sorted(data, key=lambda k: k[0][::-1] ) ) )
印刷:
ueia
推荐阅读
- tensorflow - Keras 自定义损失函数仅在训练期间访问附加参数
- c# - 将xml文件中节点的值设置为C#中节点的另一个值
- python - 在 conda 中使用巧克力的“choco outdated”的等效命令来找出过时的 conda 包
- vim - 如何用 Vim 替换 () 和 &commentstring 注释整行
- python - 如何在 pandas 的帮助下创建函数来读取文件夹中的所有文件并为每个文件创建不同的数据框?
- mongoose - Strapi 查询对象数组中包含某个元素的所有对象
- javascript - 当自动完成属性关闭时实现类似自动完成的功能
- java - 如何通过样式设置“app:backgroundTint”?
- angular - 如何在 NativeScript 中实现 ZoomChart 等第三方库?
- python - 使用 petl 使用 python 按多个字段分组