Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/05/2020, à 02:27

judkil

Python3 function

Bonjour,

J'aimerai créer une  fonction qui prent compte une liste de 3 arguments (x, y et z) et inscrit la lettre dans la colonne 2 dans uns nouvelle liste.

point.txt

Type Chaine Atome x   y  z
POINT D 116      40   0  17
POINT D 116      40   0  15  
POINT D 117      39  -3  15
POINT E 117      41  -5  15
POINT F 117      41  -7  17
POINT G 117      42  -7  19
POINT G 117      42  -8  18 

output

chaine = ['D', 'D', 'D','E', 'F', 'G', 'G']

Dernière modification par judkil (Le 25/05/2020, à 16:08)

Hors ligne

#2 Le 25/05/2020, à 07:30

Compte supprimé

Re : Python3 function

Bonjour,
Tu peux reformuler ? Je n'ai pas saisie la demande...

#3 Le 25/05/2020, à 15:43

judkil

Re : Python3 function

Bonjour,

J'aimerai créer une fonction qui prent compte une liste de 3 arguments (x, y et z) pour le fichier point.txt et inscrit la lettre dans la colonne 2 dans uns nouvelle liste quand il reconnait le x y et z.

def liste_coord(x, y, z)
      if x, y, z in 
      return 

Je ne vois pas comment lui dire de retourner la lettre de la dexième colonne.

Le output serait une liste des lettres de la colonne 2

chaine = ['D', 'D', 'D', ... , 'G', 'G']

Dernière modification par judkil (Le 25/05/2020, à 15:44)

Hors ligne

#4 Le 25/05/2020, à 16:05

pingouinux

Re : Python3 function

Bonjour,
Si les triplets (x,y,z) sont uniques dans le fichier d'entrée, la chaîne finale ne contiendra qu'une lettre.

#!/usr/bin/env python3

with open('point.txt','r') as f: ligs=f.readlines()

def liste_coord(x,y,z):
   chaine=[]
   for lig in ligs: 
      if lig.split()[3:]==list(map(str,(x,y,z))): chaine.append(lig.split()[1])
   return chaine

chaine=liste_coord(40,-4,16)
print(chaine)

Hors ligne

#5 Le 25/05/2020, à 16:11

judkil

Re : Python3 function

Merci beaucoup pour votre aide, mais j'aimerai savoir que fais la fonction map ?

Hors ligne

#6 Le 25/05/2020, à 16:23

pingouinux

Re : Python3 function

mais j'aimerai savoir que fais la fonction map ?

list( map(str,(x,y,z)) )

Ici, la fonction map convertit une séquence d'entiers en une séquence de chaînes, pour pouvoir effectuer la comparaison avec ce qui a été lu.

Hors ligne

#7 Le 25/05/2020, à 16:31

judkil

Re : Python3 function

D'accord ! Merci beaucoup pour votre réponse !

Hors ligne