J'ai un code très inefficace que je voudrais rendre plus général/efficace. J'essaie de créer des chaînes à partir d'un ensemble de listes.Manière efficace de créer des chaînes à partir d'une liste
Voici ce que j'ai actuellement:
#contains categories
numind = [('Length',), ('Fungus',)]
#contains values that pertain to the categories
records = [('Length', 'Long'), ('Length', 'Med'), ('Fungus', 'Yes'), ('Fungus', 'No')]
#contains every combination of values between the 2 categories.
#for example, (Long, Yes) = Length=Long & Fungus = Yes.
combinations = [('Long', 'Yes'), ('Long', 'No'), ('Med', 'Yes'), ('Med', 'No')]
Maintenant, je veux créer des chaînes qui ont toutes les combinaisons dans ma liste de combinaison. C'est la partie inefficace. Je voudrais que je n'aie pas à câbler la longueur de la liste "numind". Des idées?
values = combinations
valuestring = []
if len(numind) == 0:
pass
elif len(numind) == 1:
for a in xrange(len(values)):
valuestring.append(numind[0][0]+values[a][0])
elif len(numind) == 2:
for a in xrange(len(values)):
valuestring.append(numind[0][0]+values[a][0]+'_'+numind[1][0]+values[a][1])
#and so forth until numind is 10+
sortie
['LengthLong_FungusYes', 'LengthLong_FungusNo', 'LengthMed_FungusYes', 'LengthMed_FungusNo']
Génial! bon code homme. Appréciez l'explication aussi! – nlr25