首页 > 解决方案 > 我如何使用字符串索引来挑出多元素列表/或元组中的第一个字母

问题描述

我将如何创建一个函数,基本上只为我正在寻找的提供的字符串逻辑的每个元素挑选出一个特定的字符:

前任。在元素列表中,例如:

countries_and_capitals = (
    ['Afghanistan', 'Kabul'], ['Albania', 'Tirana (Tirane)'], ['Algeria', 'Algiers'], ['Andorra', 'Andorra la Vella'],
    ['Angola', 'Luanda'], ['Antigua and Barbuda', "Saint John's"], ['Argentina', 'Buenos Aires'],
    ['Armenia', 'Yerevan'])

我如何创建一个逻辑来仅显示 Capital 和 Country ex 的首字母相同的元素。阿尔及利亚,阿尔及尔。

标签: pythonstringlisttuples

解决方案


如果只使用First字母来确定匹配,它可能也是loose,并选择更多作为结果。例如:S outh Korea——首尔;或B elgium 到B russels。不确定这是可取的吗?即使它满足最初的要求。

因此,为了使此功能更具适应性 - 这只是将matching标准作为一个字符作为默认值,但如果以后需要,可以更改以选择更多字符。

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. 

  

运行它:

print(find_same_name(countries_and_capitals))

输出:

[['Algeria', 'Algiers'], ['Andorra', 'Andorra la Vella']]

推荐阅读