我正在尝试从较小的列表中获取经过排序的主列表。这可以在 python 或 R 中。
在 R 中,我有
l1<-c("a","c","d")
l2<-c("a","b","e")
l3<-c("a","c","e")
l4<-c("a","b","c","e")
l5<-c("b","c","d")
m<-unique(c(l1,l2,l3,l4,l5))
我期望的输出是 a,b,c,d,e。
在 python
l1=["a","c","d"]
l2=["a","b","e"]
l3=["a","c","e"]
l4=["a","b","c","e"]
l5=["b","c","d"]
预期结果是 ["a","b","c","d","e"] 我开始制作一组并检查每个列表并检查索引但它开始变得复杂。
谢谢你的帮助。
编辑: 我想我把按字母顺序排序的列表弄糊涂了。这些列表项可能是随机的。真正的顺序可能不是a,b,c,d,e。
l1=["e","a"]
l2=["e","b","d"]
l3=["b","d","a"]
在这种情况下,预期顺序是 ["e","b","d","a"] 而不是 ["a","b","d", “e”]
为了更清楚,想想很少有人试图从东到西命名美国各州。
person 1 says, Florida, Louisiana, Nevada,California.
person 2 says Alabama, Mississippi, Louisiana, new Mexico, Nevada
person 3 says Florida, Alabama, Texas, New Mexico, California
person 4 says Alabama, Mississippi, Texas, Nevada
person 5 says Mississippi Louisiana, Nevada
我正在尝试从上面的信息中获得正确的顺序。
所以,在这里,我们将从佛罗里达、路易斯安那、内华达、加利福尼亚开始。现在,添加第二个,它将是 (阿拉巴马州、佛罗里达州)、路易斯安那州、新墨西哥州、内华达州、加利福尼亚州。 添加第三个(打破阿拉巴马州/佛罗里达州的平局),佛罗里达州、阿拉巴马州、路易斯安那州、得克萨斯州、新墨西哥州、内华达州、加利福尼亚州 加上第 4 位就是 佛罗里达州、阿拉巴马州(密西西比州/路易斯安那州)、德克萨斯州、新墨西哥州、内华达州、加利福尼亚州。添加密西西比州和路易斯安那州的第 5 个破发平局。
请您参考如下方法:
Aaa 实际答案:https://www.python.org/doc/essays/graphs/
狩猎好! :D
这应该可以解决您的原始问题:
l1=["a","c","d"]
l2=["a","b","e"]
l3=["a","c","e"]
l4=["a","b","c","e"]
l5=["b","c","d"]
s = set()
s.update(l1, l2, l3, l4, l5)
l = sorted(s)
l
#['a', 'b', 'c', 'd', 'e']
对于您编辑过的问题,让我们考虑一下您的第二个示例的细微变化:
l1=["e","a"]
l2=["e","b","d"]
l3=["b","c","a"]
(斜视 l3。)在这种情况下,列表集未定,因为 d 和 c 之间没有唯一的顺序>。没有决定关系的规则,就不可能有算法。
