python - 争论作者全名到出版类型(全名,名字首字母)
问题描述
我在数据集中有一列,其中包含以下作者的全名、姓氏、名字;
Input:
Makarenko, Iuliia; Mazhnaya, Alyona; Marcus, Ruthanne; Pykalo, Iryna; Madden, Lynn; Filippovich, Sergii; Dvoriak, Sergii; Altice, Frederick L.
我想对字符串进行排序,以便具有以下姓氏,名字的拳头首字母;
Makarenko I, Mazhnaya A, Marcus R, Pykalo I, Madden L, Filippovich S, Dvoriak S, Altice FL
我试图在 `.split(";") 上拆分字符串,现在只想从名字中选择第一个字符以与姓氏保持一致,我不知道我应该使用字符串还是列表方法不过要做到这一点。
解决方案
遵循以下内容就足够了。从“;”开始拆分是正确的。然后,您可以在列表理解中将名称进一步拆分为第一个和最后一个。这将创建一个列表列表。然后我们可以按姓氏排序并打印出我们想要的结果。
names = [name.split(", ") for name in input_string.split(";")]
names.sort(key=lambda name:name[1])
print(", ".join(["{last} {initial}".format(last=name[1], initial=name[0][0]) for name in names]))
推荐阅读
- android - getCurrentUser() 不给 null
- c++ - 请解释 `function1(p1,p2,p3);` 的输出
- angular - Angular 6 ng-select2 从 api 填充
- c++ - 指针和指针的地址如何共享同一个内存地址?
- php - Laravel 中间件不会在每个请求之前运行
- python - 需要设计模式建议
- sql - SQL TRIM() 函数中的奇怪错误
- rust - How to pattern match on values inside a type implementing Deref, such as Box, without copying the contents?
- python - 如何使用 RIDE 在机器人框架中更改我的结果目录?
- keras - 用于拟合 Keras 模型的 Dask DataFrame