所以这是一个大问题:
我有一份各种出版物的作者和合著者名单。此列表可能如下所示:
[[['A','uni'],[['B','uni'],['C','uni'],['D','uni'],['E','uni']]],
[['E','uni'],[['A','uni'],['F','uni'],['G','uni']]]]
因此,作者 A 与作者 B、C 和 D 合作了一个出版物,作者 E 与作者 A、F 和 G 合作了另一个出版物。
我需要的是一份所有作者的名单,即使他们只是被列为共同作者(B、C、D、F、G)以及他们与谁一起写了多少篇论文。因此,所有主要作者(A 和 E)都与他们的共同作者(A 与 B、C、D、E;E 与 A、F、G)一起工作,但论文的共同作者也一起工作(B 与 C、D、E还有 A 等等)。最重要的是,我需要知道他们一起工作了多少篇论文。
所以这个小例子的最终结果是:
[[['A','uni'],[['B','uni',1],['C','uni',1],['D','uni',1],['E','uni',2],['F','uni',1],['G','uni',1]]],
[['B','uni'],[['A','uni',1],['C','uni',1],['D','uni',1],['E','uni',1]]],
[['C','uni'],[['A','uni',1],['B','uni',1],['D','uni',1],['E','uni',1]]],
[['D','uni'],[['A','uni',1],['B','uni',1],['C','uni',1],['E','uni',1]]],
[['E','uni'],[['A','uni',2],['B','uni',1],['C','uni',1],['D','uni',1],['F','uni',1],['G','uni',1]]],
[['F','uni'],[['A','uni',1],['E','uni',1],['G','uni',1]]],
[['G','uni'],[['A','uni',1],['E','uni',1],['F','uni',1]]]]
好吧,老实说,这有点令人困惑,但我希望你明白我的意思。(uni 条目代表作者工作的大学。可能仍包含其他信息,但这与此任务无关)
我有这个初始列表,我使用我编写的用于解析数据库的 python 脚本获得。我想创建一个图表,显示我和谁以及多久写一次。
我现在玩了一段时间,我只是找不到一个好的解决方案。我想我可以写出一些有用的东西,但它不会很好或没有效率并且非常耗时。那么有没有一种快速的、pythonic 的方法来解决这个问题呢?我的示例现在只有两个出版物,但我必须分析大约 10000 个出版物,其中一些有几百个共同作者......