Comment puis-je écrire le code pour une condition if où je veux voir si je peux convertir le type d'un élément dans une liste en int. Si c'est possible, alors si la condition doit être exécutée, sinon, elle doit aller à l'instruction else
Par exemple:
lst=['@','#','^','%','20'] ''' Now i am going to iterate through the list and check if i can convert the elements to type int. If it can be converted then i know there is a number in the list and i do some operations on the number''' for ele in lst: if(type(int(ele)=='int'): #do some operation on the number eg:20/2 and print the value else: continue
Veuillez me donner une idée de la manière d'écrire la condition if.
4 Réponses :
Essayez avec .isdigit()
+ une liste de compréhension (couple parfait ;-):
[str(x).replace('.','').isdigit() for x in lst]
Attention : ne fonctionne pas pour les chaînes flottantes, pour les flotteurs:
lst=['@','#','^','%','20'] [str(x).isdigit() for x in lst]
Vous pouvez vérifier si chaque élément est un int en utilisant un bloc try dans une fonction d'assistance is_int
:
20/2 = 10.0
Production:
def is_int(s): try: int(s) return True except ValueError: return False lst = ['@', '#', '^', '%', '20'] for s in lst: if is_int(s): int_s = int(s) print(f'{int_s}/2 = {int_s/2}') else: continue
Essayez de convertir en int
et attrapez l'erreur:
for ele in lst: try: val = int(ele) except ValueError: continue else: print(val)
Je pense que ce que vous recherchez est:
lst = ['@', '#', '^', '%', 20] for ele in lst: if isinstance(ele,int): print("This is int: " + str(ele)) else: print("This is not int: " + ele)
if isinstance(ele,int)
Très simple et facile.
Merci. Mais je vérifie si les éléments peuvent être convertis en type int. pas si l'élément est de type int.
Oh désolé a propos de ca :)
Vous devriez plutôt
try
de convertir l'élément en int et continuer en cas de succès,except
que vous faites autre chose lorsque cela échoue avec uneValueError
.Est-ce que cela répond à votre question? Python: testez si la valeur peut être convertie en un entier dans une compréhension de liste