我有几个元组的大列表。其中之一是:
list_one[:20]
>>>
[[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Immunologic Factor')],
[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Organic Chemical')],
[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding')],
[('Pharmacologic Substance', 'Immunologic Factor'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Chemical', 'Biologically Active Substance')],
[('Pharmacologic Substance', 'Organic Chemical'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Chemical', 'Biologically Active Substance')],
[('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding'),
('Chemical', 'Biologically Active Substance')],
[('Pharmacologic Substance', 'Immunologic Factor'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Gene or Genome', 'Biologically Active Substance')],
[('Pharmacologic Substance', 'Organic Chemical'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Gene or Genome', 'Biologically Active Substance')],
[('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding'),
('Gene or Genome', 'Biologically Active Substance')],
[('Disease or Syndrome', 'Sign or Symptom'),
('Manufactured Object', 'Disease or Syndrome'),
('Molecular Biology Research Technique', 'Manufactured Object')],
[('Disease or Syndrome', 'Patient or Disabled Group'),
('Manufactured Object', 'Disease or Syndrome'),
('Molecular Biology Research Technique', 'Manufactured Object')],
[('Disease or Syndrome', 'Age Group'),
('Manufactured Object', 'Disease or Syndrome'),
('Molecular Biology Research Technique', 'Manufactured Object')],
[('Disease or Syndrome', 'Finding'),
('Manufactured Object', 'Disease or Syndrome'),
('Molecular Biology Research Technique', 'Manufactured Object')],
[('Disease or Syndrome', 'Population Group'),
('Manufactured Object', 'Disease or Syndrome'),
('Molecular Biology Research Technique', 'Manufactured Object')],
[('Disease or Syndrome', 'Animal'),
('Manufactured Object', 'Disease or Syndrome'),
('Molecular Biology Research Technique', 'Manufactured Object')],
[('Body Part, Organ, or Organ Component', 'Pathologic Function'),
('Pathologic Function', 'Finding'),
('Nucleic Acid, Nucleoside, or Nucleotide',
'Body Part, Organ, or Organ Component')],
[('Pharmacologic Substance', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function')],
[('Pharmacologic Substance', 'Immunologic Factor'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Tissue', 'Biologically Active Substance')],
[('Pharmacologic Substance', 'Organic Chemical'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Tissue', 'Biologically Active Substance')],
[('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding'),
('Tissue', 'Biologically Active Substance')]]如何对每个子列表进行排序,使元组按顺序排列(例如,[(1,2), (2,3), (3,4)])?
例如,第一个子列表
[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Immunologic Factor')]有按顺序排列的元组。然而,最后一个问题是:
[('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding'),
('Tissue', 'Biologically Active Substance')]不是,而且应该是:
[('Tissue', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding')
]注意,子列表的长度在列表之间是不同的(也就是说,我在这个列表中有3个元组,但是我可能有2、5或任何其他数字)。此外,元组可以更改为列表,如果更容易。
发布于 2022-08-26 08:54:31
有趣的问题。您可以尝试以下几种方法:
def sort(tuples):
connects = dict(tuples)
steps = []
start = (connects.keys() - connects.values()).pop()
while end := connects.get(start, False):
steps.append((start, end))
start = end
return steps
list_one_sorted = [sort(tuples) for tuples in list_one]list_one的子列表)读入字典,这为您提供了一种自然的方式来遍历元组(从键开始,获取相应的值,然后使用值作为键,.)。start:值中没有的唯一键。start开始,并在新列表中收集由此排序的元组。H 210F 211list_one的结果是:
[[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Immunologic Factor')],
[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Organic Chemical')],
[('Bacterium', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding')],
[('Chemical', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Immunologic Factor')],
[('Chemical', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Organic Chemical')],
[('Chemical', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding')],
[('Gene or Genome', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Immunologic Factor')],
[('Gene or Genome', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Organic Chemical')],
[('Gene or Genome', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding')],
[('Molecular Biology Research Technique', 'Manufactured Object'),
('Manufactured Object', 'Disease or Syndrome'),
('Disease or Syndrome', 'Sign or Symptom')],
[('Molecular Biology Research Technique', 'Manufactured Object'),
('Manufactured Object', 'Disease or Syndrome'),
('Disease or Syndrome', 'Patient or Disabled Group')],
[('Molecular Biology Research Technique', 'Manufactured Object'),
('Manufactured Object', 'Disease or Syndrome'),
('Disease or Syndrome', 'Age Group')],
[('Molecular Biology Research Technique', 'Manufactured Object'),
('Manufactured Object', 'Disease or Syndrome'),
('Disease or Syndrome', 'Finding')],
[('Molecular Biology Research Technique', 'Manufactured Object'),
('Manufactured Object', 'Disease or Syndrome'),
('Disease or Syndrome', 'Population Group')],
[('Molecular Biology Research Technique', 'Manufactured Object'),
('Manufactured Object', 'Disease or Syndrome'),
('Disease or Syndrome', 'Animal')],
[('Nucleic Acid, Nucleoside, or Nucleotide',
'Body Part, Organ, or Organ Component'),
('Body Part, Organ, or Organ Component', 'Pathologic Function'),
('Pathologic Function', 'Finding')],
[('Pharmacologic Substance', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function')],
[('Tissue', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Immunologic Factor')],
[('Tissue', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pharmacologic Substance'),
('Pharmacologic Substance', 'Organic Chemical')],
[('Tissue', 'Biologically Active Substance'),
('Biologically Active Substance', 'Pathologic Function'),
('Pathologic Function', 'Finding')]]https://stackoverflow.com/questions/73490578
复制相似问题