-1
votes

Comment puis-je écrire la fonction avec 2 arguments?

Je dois écrire une fonction qui recherche une liste pour trouver une correspondance pour un élément donné. La fonction prend deux arguments: une liste et un élément cible. Il renvoie deux valeurs: une valeur booléenne indiquant si l'élément existe dans la liste et si l'élément existe, l'index de l'élément correspondant.


2 commentaires

Vous devriez essayer une solution avant de poster. Quoi qu'il en soit, j'ai posté une fonction qui fait ce que vous demandez. S'il vous plaît dites-moi si c'est ce que vous voulez.


Bienvenue sur Stackoverflow. Cette question est manquante contexte ou d'autres détails: veuillez améliorer la question en fournissant un contexte supplémentaire, ce qui inclut idéalement vos pensées sur le problème et toutes les tentatives que vous avez apportées pour le résoudre. Cette information aide les autres à identifier l'endroit où vous avez des difficultés et les aide à écrire des réponses adaptées à votre niveau d'expérience. Vous devez également indiquer exactement quelle est votre difficulté, ce que vous attendiez, de ce que vous avez eu et de toute trace.


3 Réponses :


1
votes

Comment écrire une fonction avec 2 arguments? P>

C'est aussi simple que: P>

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(True, 1)
(True, 6)
(False, None)

3 commentaires

Vous n'avez pas besoin de boucle. Votre explication est un peu plus compliquée que nécessaire


@ Alec935, si vous souhaitez implémenter cette chose spécifique dans python, Vous pouvez vous éloigner des choses comme dans et list.index . Toutefois, étant donné le contenu de la question, il semble évident que cela soit de la classe ouvrière, donc devrait probablement être utilisé comme une opportunité d'apprendre à coder dans Général plutôt que du code dans Python. Cela dit, j'ai ajouté du code python idiomatique dans la note de pied sur la chance que mon hypothèse sur l'intention est incorrecte.


Il se peut que vous ayez raison. J'ai répondu à cette recherche sur des balises Python et la question est étiquetée Python, mais votre réponse est probablement plus utile pour les autres à la recherche de la question



0
votes
ls, item = input("Enter comma-separated values: ").split(","), input('Enter an item: ')

def slist(ls,item):
    try: ind,inls = ls.index(item), True
    except: ind,inls = None, False
    return inls,ind

inls,ind = slist(ls,item)
print('In list: %s' % inls,'\nIndex: %s' % ind)

2 commentaires

Pourquoi rechercher la liste deux fois (avec dans et index )? Vous pouvez simplement utiliser l'index immédiatement et capturer l'erreur de valeur pour renvoyer false & Aucun.


@paxdiablo édité selon vos conseils



0
votes

Utiliser simplement l'opérateur dans code> peut vérifier si l'élément requis existe dans la liste. Ensuite, utilisez list.index (item) code> pour obtenir l'index de l'élément.

def function_name(l,item):
  if item in l:
    return True, l.index(item)
  else:
    return False, -1


2 commentaires

Comme avec mon commentaire à Alec, vous pouvez contourner le dans et simplement attraper l'erreur de valeur à partir de index . Mieux vaut demander pardon que de demander la permission :-)


@paxdiablo c'est une bonne idée. Quand j'ai posté ma réponse, vous n'aviez pas encore commenté Alec935 cependant.