【发布时间】:2011-05-21 18:30:53
【问题描述】:
我无法对两个相关但独立的元组列表进行排序。一个列表由表示博客文章的元组列表组成。另一个列表由表示评论帖子的元组列表组成。
问题是当您想要基于博客 ID 值的相同订单时。博客文章列表按日期值排序。因此,您不能只通过博客 ID 对博客和评论帖子进行数字排序。而且您不能只通过日期值对评论帖子进行排序,因为博客和相关评论帖子的日期值可能不同。
我不确定如何解决这个问题 - 至少不是以一种优雅的方式。
我应该使用lists:nth 并因此获取每个元组列表和位置值吗?然后我会得到博客 ID 的值,然后我会在列表中搜索该 ID 的评论帖子。获取该元组列表的值。将新列表中该元组列表的值与适当的第 n 个位置值相关联。
我应该使用lists:sort 函数吗?
非常感谢任何有关代码示例的建议。
这里有两个可以用作基础的元组列表示例:
[[{<<"blog_id">>,<<"a2">>},
{<<"postDate">>,<<"2010-12-4T6:10:12">>},
{<<"message">>,<<"la di da bo di do">>}],
[{<<"blog_id">>,<<"b8">>},
{<<"postDate">>,<<"2009-12-3T10:09:33">>},
{<<"message">>,<<"that is cool">>}],
[{<<"blog_id">>,<<"a9">>},
{<<"postDate">>,<<"2009-12-2T18:12:29">>},
{<<"message">>,<<"i like san francisco">>}]]
[[{<<"comment_id">>,<<"n6">>},
{<<"related_blog_id">>,<<"b8">>},
{<<"postDate">>,<<"2010-12-5T15:10:12">>},
{<<"message">>,<<"yup really neat">>}],
[{<<"comment_id">>,<<"y2">>},
{<<"related_blog_id">>,<<"a9">>},
{<<"postDate">>,<<"2009-12-6T10:09:33">>},
{<<"message">>,<<"yes but rent is expensive">>}],
[{<<"comment_id">>,<<"x4">>},
{<<"related_blog_id">>,<<"a2">>},
{<<"postDate">>,<<"2009-12-5T16:12:29">>},
{<<"message">>,<<"sounds like a hit">>}]]
所需的输出如下,第一个列表未更改,第二个列表重新排序:
[[{<<"blog_id">>,<<"a2">>},
{<<"postDate">>,<<"2010-12-4T6:10:12">>},
{<<"message">>,<<"la di da bo di do">>}],
[{<<"blog_id">>,<<"b8">>},
{<<"postDate">>,<<"2009-12-3T10:09:33">>},
{<<"message">>,<<"that is cool">>}],
[{<<"blog_id">>,<<"a9">>},
{<<"postDate">>,<<"2009-12-2T18:12:29">>},
{<<"message">>,<<"i like san francisco">>}]]
[ [{<<"comment_id">>,<<"x4">>},
{<<"related_blog_id">>,<<"a2">>},
{<<"postDate">>,<<"2009-12-5T16:12:29">>},
{<<"message">>,<<"sounds like a hit">>}],
[{<<"comment_id">>,<<"n6">>},
{<<"related_blog_id">>,<<"b8">>},
{<<"postDate">>,<<"2010-12-5T15:10:12">>},
{<<"message">>,<<"yup really neat">>}],
[{<<"comment_id">>,<<"y2">>},
{<<"related_blog_id">>,<<"a9">>},
{<<"postDate">>,<<"2009-12-6T10:09:33">>},
{<<"message">>,<<"yes but rent is expensive">>}]]
【问题讨论】:
标签: list sorting erlang tuples