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 08/12/2019, à 18:40

Pam547

[Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Bonjour,

Pour un projet d'associations, de combinaisons et de rotations de culture (horticole), un dictionnaire a été assigné à la variable Historiques. Il est de la forme :

Historiques = {('Parcelle','Année'):('Culture1','Culture2')}

Historiques a pour fonction de garder en mémoire les cultures des parcelles cultivées.
Voila ce qu'il a en mémoire pour le moment :

>>> Historiques
{((-1000, -1000), 2015): ('Aubergines', 'Courges'), ((0, 0), 2018): ('Pommes de terre', 'NA'), ((0, 0), 2019): ('Ails', 'Radis'), ((0, 1), 2019): ('Pommes de terre', 'Laitues romaines'), ((0, 0), 2017): ('Épinards', 'NA'), ((2, 2), 2019): ('Carottes', 'Épinards'), ((0, 1), 2018): ('Choux-pommés cabus', 'NA'), ((0, 0), 2020): ('Fèves', 'Radis'), ((0, 1), 2020): ('Poireaux', 'Laitues romaines')}

Bref, quatre parcelles : (0,0), (0,1), (2,2), et (-1000,-1000). Ces parcelles sont cultivées depuis 2015.
À chaque couple ('Parcelle','Année') s'associe une association de culture ('Culture1','Culture2').

---------------------------------------------------------------------------------------------------------

Aujourd'hui, il serait possible d'installer jusqu'à trois cultures de plante annuelle sur une même "culture", la même année.
Mais avec cette forme de dictionnaire, toutes les cultures de l'année auront la même clef et seront donc effacées de la mémoire au fur et à mesure qu'une plante annuelle sera cultivé sur la même culture.

Bref, l'option d'ajouter des clés primes, secondes, terces, a l'air compliqué. --> par exemple : ((0, 0), (2020,prime)), ((0, 0), (2020,seconde)), ((0, 0), (2020,terce))

L'option d'ajouter un dictionnaire à chaque valeur d'une clé, c'est le début du mal de tête hmm :

HistoriquesXX = {('Parcelle','Année'):({('Culture1'):('X1','X2','X3')},{('Culture2'):('x1','x2','x3')})}

---------------------------------------------------------------------------------------------------------

https://docs.python.org/fr/3/tutorial/d … ctionaries
https://docs.python.org/fr/3/library/st … types-dict

Si à tout hasard un algorithme pouvait simplifier la chose, se serait tip, top, super génial.
Merci pour votre attention.

Dernière modification par Pam547 (Le 09/12/2019, à 19:31)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#2 Le 08/12/2019, à 18:56

grigouille

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Ton problème n'a rien à voir avec Python. Ton problème est : quelle doit être ma structure de données.


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#3 Le 08/12/2019, à 19:23

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

grigouille a écrit :

Ton problème n'a rien à voir avec Python. Ton problème est : quelle doit être ma structure de données.

Le problème pourrait aussi être lié à la quantité de paracétamols ingurgitable en 24 heures wink

Dernière modification par Pam547 (Le 08/12/2019, à 19:23)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#4 Le 08/12/2019, à 20:13

mandeb

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Bonsoir,
Comme dit plus haut le problème est lié à la manière d'arranger tes données.
Avec python il existe une solution simple : une petite base de données Sqlite. Le matériel est fourni directement avec python donc rien à installer. Le fichier de données généré est unique donc pas de gestion type "usine à gaz".
Le seul point (un peu) compliqué c'est qu'il va falloir apprendre un minimum de SQL (langage spécifique au travail sur les bases de données). Pas de panique c'est assez simple, il y a des tutos partout sur le net.

Il suffirait de créer une table contenant les colonnes  : ID1_parcelle, ID2_parcelle, annee, ordre_annuel, culture
puis d'y entrer les lignes genre  (par exemple)           : -1000, -1000, 2015, 1,  Aubergines
                                                                                    : -1000, -1000, 2015, 2, Courge
                                                                                    : -1000, -1000, 2015, 3, Carottes
                                                                                    : 0, 0, 2019, 1, Radis
                                                                                    : 0, 0, 2019, 2, Ail
etc, etc....
Tu n'a plus de limite, tu peux en entrer autant que nécessaire, le traitement et la récupération des données avec SQL en seront beaucoup plus faciles.

Si tu te lances, pour apprendre sache qu'il existe de nombreux petits utilitaires libres et gratuits qui te permettent de travailler directement sur ta base Sqlite (en SQL ou pas) sans passer par python qui dans ton cas devient juste une interface homme/machine. tu en trouves dans la logithèque ubuntu.

Dernière modification par mandeb (Le 08/12/2019, à 20:58)

Hors ligne

#5 Le 08/12/2019, à 20:34

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Oui, effectivement. Savoir envoyer des requêtes.
Bien vrai.

Mais : https://forum.ubuntu-fr.org/viewtopic.p … 1#p7798741


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#6 Le 08/12/2019, à 20:51

Watael

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

plutôt que d'exposer comment, dans python, les données sont assignées de manière non pérenne, puisqu'elles n'existent sous cette forme que pendant la durée d'exécution du script.
tu devrais exposer comment les données sont réellement stockées.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 08/12/2019, à 21:53

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Les données sont des paramètres.

Les données en quantité, c'est à l'ordinateur de les fournir.

Le script ressemble encore beaucoup à celui là : https://github.com/pam547/JardInfo
L'idée est d'obtenir les solutions possibles quant à une plante (besoins, stresse), son sol, et ses voisins.

À chacun ses modèles, l'idée étant d'obtenir le résultat d'un rendement d'une biodynamie végétale et autonome le plus rapidement possible.

Dernière modification par Pam547 (Le 08/12/2019, à 22:24)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#8 Le 08/12/2019, à 23:15

Watael

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

ce que j'ai compris :
l'historique des parcelles contient, pour chaque parcelle, pour chaque année, les cultures  faites (ou 1, ou 2, jusqu'à 3 max.).
schématiquement :

historique_Parcelles = {
   parcelle_n : {
        année_n : [ culture_x, culture_y ] # utiliser une liste, puisque le nombre de valeurs à stocker n'est pas défini
      année_n+1 : [ culture_x, culture_y ]
   }
   parcelle_n+1: {
       année_n : [ culture_x ]
      année_n+1 : [ culture_x, culture_y, culture_z ]
   }
}

yapuka! convertir l'existant. sad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 09/12/2019, à 11:52

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Merci beaucoup Watael,

Pour le modèle de culture proposé pour le moment, à savoir : des parcelles de huit sillons avec par exemple pour une parcelle deux cultures A et B (ABABABAB). Comment le dernier modèle d'Historique permettrait de récupérer la qualité du sol sous la culture A et sous la culture B ?

Je crois que je vais garder ce modèle :

HistoriquesXX = {
	('Parcelle','Année'):(	{
		('CulturesA'):['X1', 'X2', 'X3']
	},
				{
		('CulturesB'):['x1', 'x2', 'x3']
	},
				{
		('Bordure'):['Bn', 'Be' , 'Bs', 'Bo']
	})
}

Quoi qu'il en soit, oui, il va falloir convertir tout les appels à ce dictionnaire.

Et peut-être même que c'est le moment d'ajouter d'autres historiques pour proposer d'autres modèles de culture : (Mono (A) ; Étoile à 3 branches, Étoile à 4 branches ; etc ; Bi (AB) ; Ter (ABC) ; etc ...) pour voir si un modèle se lance de manière rentable et autonome plus vite que les autres.

Le prochain qui me dit que le jardinage est l'école de la patience, je lui ferais quand même remarquer que nos plantes potagères vivent rarement plus de deux ans, et que c'est quand même très court pour leur prouver tout notre amour tongue.
Enfin bref, merci encore pour votre attention. wink

Dernière modification par Pam547 (Le 09/12/2019, à 12:10)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#10 Le 09/12/2019, à 15:34

Watael

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

nos plantes potagères vivent rarement plus de deux ans

ah, ça, quand on n'a pas la main verte !... lol

mais deux ans c'est déjà pas mal; les plantes qui entrent chez moi survivent rarement la première année, souvent beaucoup moins. mad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 09/12/2019, à 18:54

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

À chacun ses compétences smile.
Il est difficile de se positionner entre la délicatesse et la rudesse. Quoi qu'il en soit, à chaque qualité un entretien particulier hmm.

Au final, comme vous le faisiez remarquer Watael, il suffirait simplement d'ajouter des listes comme valeur au dictionnaire.

Historiques = {('Parcelle','Année'):(['Culture1'],['Culture2'],['Bordures'])}

Vingt quatre heures pour saisir la solution. À ce rythme, j'ai bon espoir que ce petit programme fête ses 5 ans en temps voulu lol.

Merci infiniment.
Bonne continuation à tous.

Dernière modification par Pam547 (Le 09/12/2019, à 19:01)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#12 Le 09/12/2019, à 20:53

Compte supprimé

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Pam547 a écrit :

Le prochain qui me dit que le jardinage est l'école de la patience, je lui ferais quand même remarquer que nos plantes potagères vivent rarement plus de deux ans, et que c'est quand même très court pour leur prouver tout notre amour tongue.

Bonsoir,
Il faut planter des fraisiers . 5 ans sur place minimum wink

Sinon, j'ai peut être mal regardé, mais où sont les données sur la fumure ?

#13 Le 09/12/2019, à 22:29

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Bonsoir Pseudofab,

Je suis satisfait de l'association thym, fraisier (même famille que les rosiers) et m'en sert en tant que bordure de parcelle.
Je sélectionne les stolons des fraisiers les plus vigoureux pour renouveler les pieds, le thym se dédouble aux racines très facilement.
J'hésite encore à donner un rythme de rotation pour les arbustes (Beaucoup de travaille pouvant éventuellement être évité simplement en remplaçant les pieds trop fragiles pour survivre à la saison.)

Pour la fumure, c'est aussi du travail que je voudrais éviter en réfléchissant à la renouvelabilité du sol par la rotation de culture. Les engrais verts seront donc de la partie.

J'espère que d'un des modèle s'éveille une cohabitation spontanée de végétaux pour offrir un complexe potager autonome et généreux.
Prochaine étape, dresser les ours pour qu'ils remplissent les paniers et les apportent devant la porte cool. Ou peut-être la télékinésie, allons savoir où s’arrêtera la science.
Mais pour la taille je sèche encore.

Dernière modification par Pam547 (Le 09/12/2019, à 22:52)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#14 Le 09/12/2019, à 22:49

Compte supprimé

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Prochaine étape, dresser les ours pour qu'ils remplissent les paniers et les apportent devant la porte cool

Par chez moi, il faudrait dresser les sangliers pour labourer les terres big_smile

#15 Le 09/12/2019, à 22:55

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

pseudofab a écrit :

Par chez moi, [...] big_smile

Vous dans le Nord, vous avez besoin de travailler pour vous réchauffer. On ne vous en veut pas pour autant wink


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#16 Le 09/12/2019, à 23:15

Compte supprimé

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

Je vis là où il y a toujours du soleil, où il ne pleut jamais, où les hivers sont doux... Je peux donc flâner au grès de ma fantaisie wink
Si tu vis en France métropolitaine, tu es certainement sur mon Nord. cool

#17 Le 10/12/2019, à 17:03

Pam547

Re : [Résolu](Structure de données) Dictionnaire et choix de séquence (Py3)

pseudofab a écrit :

Je vis là où il y a toujours du soleil, où il ne pleut jamais, où les hivers sont doux...

C'est que des cailloux alors par chez vous. Pourquoi donc labourer ?


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne