[英]How to neatly combine a part of a list when printing in python
name = "Joe Van Schmo"
rname = name.split()
print ('{}, {}'.format(rname[-1],rname[0:-1]))
理想情况下,我希望收益为(除了第一个单词以外的所有单词),(第一个单词),但我不确定如何以最快的方式组合Van和Schmo。
任何帮助表示赞赏。 谢谢
您可以将maxsplit
参数用于str.split
:
name = "Joe Van Schmo"
fname, rname = name.split(None, 1)
print ('{}, {}'.format(rname, fname))
输出:
Van Schmo, Joe
您可以为str.split
提供maxsplit
参数 ,或者,如果您知道名字和名字的其余部分之间只有一个空格,则str.partition
最多包含一个split 。
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))
第一个字:
rname[0]
除了第一个单词以外的所有单词:
rname[1:]
如果要与空格合并:
' '.join(rname[1:])
因此,您的最后一行代码应该是:
print ('{}, {}'.format(' '.join(rname[1:]),rname[0]))
您还可以在打印语句中直接切片.split()
print('{}, {}'.format(' '.join(name.split()[1:]), name.split()[0]))
Van Schmo, Joe
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.