擅长:python、mysql、java
<p>如果只使用<code>First</code>字母来确定匹配,它可能太<code>loose</code>了,并选择更多的字母作为结果。例如:<strong>S</strong>outh Korea-<strong>S</strong>eoul;或<strong>B</strong>elgium至<strong>B</strong>russels<不确定这是否可取</em>即使它满足初始要求</p>
<p>因此,为了使这个函数更具适应性-这只是将<code>matching</code>标准作为一个字符作为默认值,但如果以后需要,可以更改为选择更多字符</p>
<pre><code>def find_same_name(lst, matching=1):
'''
find all matching capitals with Coutries, minimum matching is One char.
'''
# list comprehension
return [sub for sub in lst
if sub[0][:matching] == sub[1][:matching]] # can determine matched req.
</code></pre>
<p>运行它:</p>
<pre><code>print(find_same_name(countries_and_capitals))
</code></pre>
<p>输出:</p>
<pre><code>[['Algeria', 'Algiers'], ['Andorra', 'Andorra la Vella']]
</code></pre>