name = "Joe Van Schmo"
rname = name.split()
print ('{}, {}'.format(rname[-1],rname[0:-1]))
В идеале я хочу, чтобы возвращение было (Все, кроме первого слова), (первое слово), но я не уверен, как быстрее всего скомбинировать Van и Schmo.
Любая помощь приветствуется. Спасибо
rname[-1] - это не первое слово, это последнее слово. Точно так же rname[0:-1] - это почти последнее слово.
Вы ищете «Ван Шмо, Джо» на выходе?
@coldspeed это правильно






Первое слово:
rname[0]
Все, кроме первого слова:
rname[1:]
Если вы хотите объединить его с пробелами:
' '.join(rname[1:])
Итак, ваша последняя строка кода должна была быть:
print ('{}, {}'.format(' '.join(rname[1:]),rname[0]))
Вы можете указать Параметр maxsplit в str.split или, если вы знаете, что у вас будет ровно один пробел между именем и остальной частью имени, str.partition предполагает не более одного сплита.
name = "Joe Van Schmo"
# Raises exception if no spaces in name
firstname, restname = name.split(maxsplit=1) # Equivalently, name.split(None, 1)
# Or without exceptions, but with possibly odd output for spaceless names
firstname, sep, restname = name.partition(' ')
print ('{}, {}'.format(restname, firstname))
@blhsing: Где ОП сказал это?
Мои извенения. Я перепутал с другим вопросом.
Вы также можете нарезать .split() прямо в заявлении для печати.
print('{}, {}'.format(' '.join(name.split()[1:]), name.split()[0]))
Van Schmo, Joe
Желаемый результат? Подумайте о том, чтобы узнать, что такое минимальный воспроизводимый пример.