我有困难对两个相关但是不同的元组列表进行排序。一个列表由表示博客文章的元组列表组成,另一个列表由表示评论帖子的元组列表组成。
问题在于当您想要基于博客 ID 值获得相同的顺序时。博客文章的列表通过日期值排序。因此,您不能仅通过博客 ID 数字排序来排序博客和评论帖子。并且您不能仅通过日期值对评论帖子进行排序,因为博客和相关评论帖子的日期值可能不同。
我不确定如何解决这个问题 - 至少不是以一种优雅的方式。
我应该使用lists:nth,然后获取每个元组列表和位置值吗?然后我会获取博客 ID 的值,然后在评论帖子列表中搜索该 ID。获取该元组列表的值。将该元组列表的值与适当的 nth 位置值关联到一个新列表中。
我应该使用lists:sort函数吗?
任何带有代码示例的建议都将不胜感激。
以下是两个元组列表样本,可用作基础:
所需输出结果如下,第一个列表不变,第二个列表重新排序:
问题在于当您想要基于博客 ID 值获得相同的顺序时。博客文章的列表通过日期值排序。因此,您不能仅通过博客 ID 数字排序来排序博客和评论帖子。并且您不能仅通过日期值对评论帖子进行排序,因为博客和相关评论帖子的日期值可能不同。
我不确定如何解决这个问题 - 至少不是以一种优雅的方式。
我应该使用lists:nth,然后获取每个元组列表和位置值吗?然后我会获取博客 ID 的值,然后在评论帖子列表中搜索该 ID。获取该元组列表的值。将该元组列表的值与适当的 nth 位置值关联到一个新列表中。
我应该使用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">>}]]
lists:sort/1
和lists:sort/2
之间的区别。后者接受任意排序函数。 - I GIVE CRAP ANSWERS