我有一个这样的名字:
"DOE D, John"
还有这样的名字:
"DOE, Jane"
以字符串的形式
我需要将其转换为这样:
"John D Doe
和
"Jane Doe"
到目前为止我有这个:
name = "DOE, John"
name_list = []
comma = ","
for letter in name:
name_list.append(letter)
index_comma = name_list.index(",")
last_name = name_list[:index_comma]
first_name = name_list[index_comma:]
print('The primary list is: ',name_list)
print("First half of list is ",first_name)
print("Second half of list is ",last_name)
new_name_list = first_name + last_name
for letter in new_name_list:
if letter == comma:
new_name_list.pop()
print(''.join(new_name_list))
但它返回这个:
, JohnDO
我该如何以干净且Pythonic的方式做到这一点?
您可以使用以下方法:
>>> " ".join(reversed(" ".join("DOE D, John".split(",")).split())).title()
'John D Doe'
>>> " ".join(reversed(" ".join("DOE, Jane".split(",")).split())).title()
'Jane Doe'
.split(",")
分割逗号的左右两侧" ".join
用空格重新组合组件.split()
拆分所有单词reversed
颠倒顺序" ".join
重新组合颠倒的词表.title()
每个单词的第一个字母大写