【问题标题】:Split names separated with commas when surnames are also separated with commas当姓氏也用逗号分隔时,用逗号分隔名称
【发布时间】:2011-03-24 18:45:37
【问题描述】:

我有以下数据库字段: 辅助:Smith, J., Jones, M. & Ford, S. 名称可以从 1 到 15,其他的用逗号分隔,最后一个用 & 分隔

如何将其拆分为列表,其中 list[1]=Smith, J, list[2]=Jones, M. 等等?

【问题讨论】:

  • 如果您能更详细地描述数据将会很有帮助。每个名字是否只有一个首字母,或者可以是“Tolkien, J. R. R.”在这个列表中?首字母总是单个字母,还是胭脂可以输入像“阿斯泰尔,弗雷德”这样的名字?首字母后面总是跟句号吗?
  • 托尔金,J.R.R.可能在名单上。据我所知,没有完整的名字,每个名字只有一个首字母,但可以有多个名字。但是对我的技能来说太难的是,我必须每隔一个逗号分隔一次(即在名字之间,而不是在姓氏、名字之间)以及 &-character 。

标签: python list split


【解决方案1】:
def parseNames(namestr):
    namestr   = namestr.replace('&', ',')
    nameparts = [namepart.strip() for namepart in namestr.split(',')]
    it = iter(nameparts)
    return zip(it,it)    # return list of part-pairs

def nameStr(name, fmt="{lastname}, {firstname}"):
    return fmt.format(lastname=name[0], firstname=name[1])

names = [nameStr(name) for name in parseNames("Smith, J., Jones, M. & Ford, S")]

给你

['Smith, J.', 'Jones, M.', 'Ford, S']

【讨论】:

  • 我明天上班试试这个。谢谢您的回答。你的,塔帕尼
  • 在我认为我的服务器中的 Python 版本太旧并安装了新版本之后,该解决方案工作得很好。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
相关资源
最近更新 更多