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] print le nom d'une variable

mangakaaa420
mangakaaa420
Niveau 1
15 août 2023 à 22:09:34

Salut à tous!

Je fais un programme pour mon boulot en python pour dimensionner des profilés métalliques.
Au début du programme, je stocke les valeurs caractéristiques de mes profilés dans des listes comme ci-dessous:
https://image.noelshack.com/fichiers/2023/33/2/1692129937-capture-d-ecran-2023-08-15-220523.png

Le souci c'est que les fonctions que j'utilisent vont me renvoyer les caractéristiques des profilés, genre je vais avoir un "return patatipatata UPN[k]", donc le rendu va être "patatipatata [11770,713.1,804.3]".

Qu'est ce que je peux utiliser comme fonction qui prendrait en entreé [11770,713.1,804.3] et qui me renverrait "IPE330"? Histoire d'avoir un résultat intelligible...

Merci à tous! :)

cybevil
cybevil
Niveau 27
15 août 2023 à 23:59:24

J'utiliserais un dictionnaire clé valeur à ta place, ce sera plus simple :

keyValueArray = [
    {"key01": "value01"},
    {"key02": "value02"},
    {"key03": "value03"},
]

for item in keyValueArray:
    for key, value in item.items():
        print("Key:", key)
        print("Value:", value)
Bunyan
Bunyan
Niveau 17
16 août 2023 à 08:55:49

Il faut que tu trouves un moyen de lier tes valeurs à ta donnée texte.
Je vois trois possibilités :
- faire un dictionnaire (comme évoqué par cybevil)
- créer un objet (2 attributs : une String et un double)
- convenir arbitrairement que tes données seront toujours dans un ordre et traiter comme tel

ParniakLeCougar
ParniakLeCougar
Niveau 19
18 août 2023 à 14:40:38

Ca n'a aucun sens ce que tu demande. Si t'as assigné une valeur a une variable, tu peux bien évidemment printer le nom de ta variable en utilisant une f-string, mais pour faire ca, il te faut d'abord le nom de ta variable pour l'insérer dans ta f-string:

jojo = "rabbit"

print(f"{jojo=}")

Si tu cherche le nom de toutes les variables qui référencent ton objet via sa valeur dans le scope, tu utilises locals(), et pour récupérer toutes les clés qui correspondent a ton objet une simple compréhension de liste :

print([key for key, value in locals().items() if value == ma_fonction_qui_retourne_un_des_items()])

Bien évidemment si je vois un dev faire ca dans la codebase je le fais virer.

Si ton but c'est d'avoir une association entre tes caractéristiques et leur nom, tu peux utiliser un dico avec le nom en tant que clé, mais c'est sale parce que le lookup sera linéaire. Y'a pas de raison pour que tes caractéristiques soient pas sous forme de tuple hashable pour permettre un lookup en temps constant via in dict a index inversé.

HvBeenTrumped
HvBeenTrumped
Niveau 26
21 août 2023 à 23:15:38

Le niveau :rire:

Ça code et ça connaît pas une map changez rien les "dev" python

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