À 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)
3 Réponses :
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)
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.
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'] >>>
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)
Premièrement, Taiwan n'est pas un pays, merci.