CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Utiliser tous les elements d'une liste

SkodaMufasa
SkodaMufasa
Niveau 44
23 août 2017 à 17:56:47

Salut
j'ai une fonction qui ne prend que des entiers
et j'ai une liste de n entiers

Comment est ce que je peux mettre en argument chaque élément de cette liste pour cette fonction?

Du style fonction(liste[0],liste[1],...,liste[n])? :(

Kheyaction
Kheyaction
Niveau 4
23 août 2017 à 18:35:24

For entier in taliste:
Tab fonction(entier)

:(

Grimmys
Grimmys
Niveau 19
23 août 2017 à 18:48:31

C'est pas vraiment ça qu'il demande.

Sans le fonctionnement interne de ta fonction, c'est un peu dur à voir...

Mais on peut imaginer un traitement au sein de ta fonction qui vérifie si un argument donné est un entier ou une liste. Si c'est une liste, bah on réalise différemment le traitement.

Et ainsi tu peux tout simplement te résoudre à faire fonction(taliste). :(

Grimmys
Grimmys
Niveau 19
23 août 2017 à 18:58:02

Enfin faudrait vraiment voir " l'entête " de ta fonction.

Est-ce que c'est un truc du genre l'entête de la fonction print ?
C'est à dire : print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

Ce qui semblerait logique vue que tu nous parles pas d'un nombre fixe d'entiers que doit prendre la fonction.

Ainsi, on peut imaginer une " entête " comme celle-ci : fonction(*ints, int_list=[]) (avec bien sûr tes autres arguments)
 *ints sera au final le tupple contenant tout les entiers passés, et si tu veux passer une liste d'entiers, tu appelles la fonction ainsi : fonction(int_list=taliste) puis tu gères le traitement dans la fonction de récupération de ces entiers.

Message édité le 23 août 2017 à 18:58:19 par Grimmys
SkodaMufasa
SkodaMufasa
Niveau 44
23 août 2017 à 19:27:58

Je pensais qu'il y aurait une commande simple pour dérouler la liste mais en fait ca a l'air plus compliqué [[sticker:p/1jnh]]

Alors en gros j'ai un maillage, et j'ai récupérer les labels des noeuds qui appartiennent à un plan. Ces labels (des entiers) je les mets dans une liste que j'appelle top
Voilà comment je la remplie

for i in range(len(nodes)):
if nodes[i].coordinates[1]>=Size_y-mt:
top=top+[(nodes[i].label)]

Et après j'appelle une fonction qui crée un ensemble à partir de ces noeuds

p.Set(name='top', nodes=p.nodes[ ( ) ] )

et ce qui est en argument de p.nodes ce sont les labels

Quand je print type(p.nodes) ce me donne : type 'MeshNodeArray'
donc on m'a proposé d'essayer :
p.Set(name='top', nodes=p.nodes[array(top)])
qui me renvoie "TypeError: must be char, not list"

et je sais pas pourquoi p.Set(name='top', nodes=[p.nodes[t] for t in top]) ne fonctionne pas non plus

Je sais pas si c'est clair mais vous avez des idées? :(

SkodaMufasa
SkodaMufasa
Niveau 44
23 août 2017 à 19:28:34

Les fonctions sont built-in c'est pas quelque chose que je peux toucher

SkodaMufasa
SkodaMufasa
Niveau 44
23 août 2017 à 20:31:18

bon j'ai réussi à me débrouiller même si je comprends pas vraiment le fond de la chose [[sticker:p/1lm9]]

p.Set(name='top', nodes=[p.nodes[(top[t]-1):(top[t])] for t in range(len(top))])

la réponse, merci quand même les kheys [[sticker:p/1lm9]]

Blaff10
Blaff10
Niveau 10
23 août 2017 à 21:03:48

Le 23 août 2017 à 17:56:47 SkodaMufasa a écrit :
Salut
j'ai une fonction qui ne prend que des entiers
et j'ai une liste de n entiers

Comment est ce que je peux mettre en argument chaque élément de cette liste pour cette fonction?

Du style fonction(liste[0],liste[1],...,liste[n])? :(

C'est pas la technique de l'unpacking que tu cherches ?

liste = [1, 2, 3, 4]
function(*liste)
Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment