如何使用字符串索引挑出多元素列表/或元组中的第一个字母

2024-09-29 21:39:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何创建一个函数,本质上只为所提供的字符串逻辑的每个元素挑出一个特定的字符:

例如,在以下元素列表中:

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'])

我如何才能创建一个逻辑,只显示首都和国家(如阿尔及利亚、阿尔及尔)的首字母相同的元素


Tags: and函数字符串元素列表逻辑字符countries
3条回答

您可以使用[]括号索引字符串中的第一个字符

string = "ABC"

print(string[0]) # Will print first character in the string

如果只使用First字母来确定匹配,它可能太loose了,并选择更多的字母作为结果。例如:South Korea-Seoul;或Belgium至Brussels<不确定这是否可取即使它满足初始要求

因此,为了使这个函数更具适应性-这只是将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']]

试试这个:

new_list = []

for sublist in countries_and_capitals:

    if sublist[0][0] == sublist[1][0]:

        new_list.append(sublist)

您将得到:

new_list

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

相关问题 更多 >

    热门问题