【发布时间】:2020-04-30 13:34:04
【问题描述】:
短版:
我有什么:
2 元组列表,例如 [("a", "b"), ("b", "c"), ("d", "e"), ("c", "d"), ("f", "g")],不一定按字母顺序排列
我想要什么:
给出一个开始字母(比如“a”)和一个结束字母(比如“e”)我希望 Python 从上面的列表中找到可用的 2 元组列表,它将开始字母“链接”到结束字母,所以在这个例子中,该列表将是 [("a", "b"), ("b", "c"), ("c", "d"), ("d", "e")] 在该顺序 (a --> b --> c --> d --> e)
加长版: 大家好,这是我在 SO 上的第 1 篇文章,尽管我已经浏览了很长时间并且总是在这里找到我的答案,很棒的社区!
我的工作要做一些数据分析,并且我有一定数量的数据集(为简单起见,我将在这里用字母表示),我只知道其中的数学差异:(“a” - “b ")、("b" - "c") 等(这些是我的输入)。我将用 2 元组表示这些输入。这个想法是计算数据集“a”和“e”之间的差异,即“a” - “e”,在这种情况下可以通过对一些中间数据集差异(我的输入)求和来获得:(“ a" - "b") + ("b" - "c") + ("c" - "d") + ("d" - "e") = "a" - "e"。
我想知道是否有一个 Python 模块可以完成我想要的工作,或者是否有一种使用 Python 语法的简单方法可以做到这一点。在上面的简单情况下,每个字母仅出现在列表中的 2 个元组中,但在一般情况下,可能会有一个包含正确字母的额外元组,但不允许将开始字母链接到结束字母(例如如果有一个额外的元组(“b”,“h”),它将在代码的第一次迭代中与元组(“b”,“c”)一起找到,但它应该被丢弃,因为字母“h”不会“引导”任何地方)。我在处理此类情况时遇到了麻烦。
我希望问题足够清楚,很难用简单的话来表达。
提前致谢!
【问题讨论】:
标签: python graph networkx graph-theory