我对 Python 完全陌生,并且有一个用 分隔的名称列表\and
,我需要将第一个用逗号分隔,最后一个用“和”分隔。但是,如果名称超过 4 个,则返回值应该是第一个名称以及短语“et al.”。所以如果我有
authors = 'John Bar \and Tom Foo \and Sam Foobar \and Ron Barfoo'
我应该得到“John Bar et al.”。而随着
authors = 'John Bar \and Tom Foo \and Sam Foobar'
我应该得到“John Bar、Tom Foo 和 Sam Foobar”。
它还应该只使用一个作者姓名,并单独返回该单一姓名(和姓氏)。
我试着做类似的事情
names = authors.split('\and')
result = ', '.join(names[:-1]) + ' and '.join(names[-1])
但这显然行不通。所以我的问题是我如何使用join
和split
让第一作者用逗号分隔,最后一个作者用“和”分隔,考虑到如果有超过四个作者,只有第一作者姓名应该与“等”一起返回。 .