1
votes

Comment imprimer le nom d'une liste / dict où le premier élément est T et le second est A en Python

À partir de la liste de pays donnée dans mon code Python, je veux seulement imprimer le nom des pays de la même liste, où le premier élément est 'T' et le second est 'A' comme- Taïwan Tadjikistan Tanzanie

J'ai essayé le code ci-dessous

for country in countries:
    if country[0]=='T' and country[1]=='A':
        print(country)


1 commentaires

Premièrement, Taiwan n'est pas un pays, merci.


3 Réponses :


2
votes

La comparaison des chaînes python est sensible à la casse, essayez de tout changer en .upper () ou .lower () d'abord.

aussi, vous pouvez utiliser .startswith ("TA") au lieu de comparer les caractères séparément

essayez ceci:

for country in countries:
    if country.upper().startswith("TA"):
        print(country)


3 commentaires

OK merci. Cela signifie que le code ci-dessous fonctionne également pour le pays dans les pays: si le pays [0] == 'T' et le pays [1] == 'a': imprimer (pays)


@AbhishekBhushan, oui, la comparaison avec 'a' devrait certainement fonctionner.


@AbhishekBhushan voulez-vous que votre recherche respecte la casse? Cette solution ne fonctionnera pas dans la recherche sensible à la casse.



1
votes

Si vous ne souhaitez pas convertir explicitement la chaîne, c'est-à-dire le nom du pays en majuscules, voici une méthode très simple pour obtenir le résultat en 1 ligne en utilisant la compréhension de liste et l'expression régulière comme indiqué ci-dessous.

>>> # If you want matched country names in caps 
... 
>>> new_countries = [country.upper() for country in countries if re.match(r"^[tT][aA]", country)]
>>> new_countries
['TAIWAN', 'TAJIKISTAN', 'TANZANIA']
>>> 
>>> # If you want matched country names in title case
... 
>>> new_countries = [country.title() for country in countries if re.match(r"^[tT][aA]", country)]
>>> new_countries
['Taiwan', 'Tajikistan', 'Tanzania']
>>> 
>>> 

Autres usages:

>>> import re
>>> 
>>> countries = ["Bangladesh", "taiwan", "Srilanka", "India", "tAjikistan", "Tanzania", "Pakistan"]
>>> 
>>> new_countries = [country for country in countries if re.match(r"^[tT][aA]", country)]
>>> new_countries
['taiwan', 'tAjikistan', 'Tanzania']
>>> 


0 commentaires

0
votes

Vous pouvez utiliser une expression régulière: re

import re
country = "Tajikistan"
if re.match(r'Ta', country): # match string that start with 'Ta', case-sensitive
    print(country)


0 commentaires