#python #string #list #tuples
Вопрос:
Как бы я создал функцию, по сути, для выделения только определенного символа для каждого элемента предоставляемой строковой логики, которую я ищу:
например, в списке таких элементов, как:
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'])
Как я мог создать логику, чтобы отображать только элементы, имеющие одинаковую первую букву как для Столицы, так и для Страны, например. Алжир, Алжир.
Комментарии:
1. Если вы обнаружите, что какой-либо из этих постов помогает вам, можете ли вы проголосовать за него и подтвердить свое согласие/признательность?
Ответ №1:
Если только использовать First
букву для определения соответствия, это, вероятно, тоже loose
будет сделано, и в качестве результатов выберите еще несколько. Например: S из Кореи — S eoul; или от 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']]
Ответ №2:
Попробуй это:
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']]
Ответ №3:
Вы можете проиндексировать первый символ в строке, используя []
квадратные скобки
string = "ABC"
print(string[0]) # Will print first character in the string