擅长:python、mysql、java
<p>为什么名字中的介词很重要?您不会在任何地方打印它,您真正关心的是<em>姓</em>,以及<em>名的其余部分</em>。不需要寻找介词,只需使用<a href="https://docs.python.org/3/library/stdtypes.html#str.rsplit" rel="nofollow noreferrer">^{<cd1>}</a>从右边拆分,并要求<code>maxsplit</code>为1。例如:</p>
<pre><code>>>> "Vincent van Gogh".rsplit(" ", 1)
['Vincent van', 'Gogh']
>>> "James Bond".rsplit(" ", 1)
['James', 'Bond']
</code></pre>
<p>然后,您可以简单地打印您认为合适的值</p>
<pre><code>fname, lname = input_name.rsplit(" ", 1)
print(f"{lname}, {fname} {lname}")
</code></pre>
<p>使用<code>input_name = "Vincent van Gogh"</code>打印<code>Gogh, Vincent van Gogh</code>。使用<code>input_name = "James Bond"</code>,您将得到<code>Bond, James Bond</code></p>
<p>这样做的另一个好处是,如果人们输入中间名/首字母,它也可以工作</p>
<pre><code>>> fname, lname = "Samuel L. Jackson".rsplit(" ", 1)
>> print(f"{lname}, {fname} {lname}")
Jackson, Samuel L. Jackson
</code></pre>
<p>注意,人们写名字的方式有很多奇怪之处,因此值得一看<a href="https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/" rel="nofollow noreferrer">Falsehoods Programmers Believe About Names</a></p>