Directement à la question. deux listes. une est imbriquée et une autre est normale.
def details(): for i in b: for j in i: for k in a:
Comment imprimer au-dessus de deux listes comme celle-ci (côte à côte et sans, []).
Name : n1 Age : 12 Class : 1st Marks : 40 Grade : b
5 Réponses :
Vous pouvez essayer quelque chose comme ça avec enumerate
:
for i in b: for idx,j in enumerate(i): print("{:<5}".format(a[idx]),":",j)
merci cela a aidé. Mais on voit que certains articles sont en zigzag à l'impression. Comme certains éléments en b sont du côté gauche et certains sont aliénants à droite, pourquoi?
Heureux que cela vous aide :) .C'est parce que les différentes longueurs des cordes ,. Essayez la dernière modification de ma réponse en utilisant le format. Consultez les informations utiles sur le format ici . Si cela vous aide, vous pouvez l'accepter , je l'apprécierai :)
Bouclez simplement sur la liste des listes b
et zippez chaque liste interne avec les clés de a
:
Name : n1 Age : 12 Class : 1st Marks : 40 Grade : b Name : n2 Age : 14 Class : 1st Marks : 70 Grade : a Name : n3 Age : 16 Class : 2nd Marks : 90 Grade : s Name : n4 Age : 14 Class : 3rd Marks : 40 Grade : b Name : n5 Age : 12 Class : 1st Marks : 50 Grade : b Name : n6 Age : 18 Class : 3rd Marks : 30 Grade : c Name : n7 Age : 11 Class : 1st Marks : 80 Grade : a Name : n8 Age : 10 Class : 2nd Marks : 20 Grade : d
Résultat:
a = ['Name', 'Age', 'Class', 'Marks', 'Grade'] b = [['n1', 12, '1st', 40, 'b'], ['n2', 14, '1st', 70, 'a'], ['n3', 16, '2nd', 90, 's'], ['n4', 14, '3rd', 40, 'b'], ['n5', 12, '1st', 50, 'b'], ['n6', 18, '3rd', 30, 'c'], ['n7', 11, '1st', 80, 'a'], ['n8', 10, '2nd', 20, 'd']] for inner in b: for key, value in zip(a, inner): print(f"{key:<5} : {value}") print()
Voir mini-documentation de langage de format de chaîne pour mettre en forme votre chaîne avec des espaces.
Merci monsieur, cela a aidé.
Vous pouvez accéder simplement comme ceci
for i in b: for j in range(len(a)): print(a[j]+" : "+str(i[j]))
Voici ce que vous pouvez faire:
Name : n1 Age : 12 Class : 1st Marks : 40 Grade : b ------------ Name : n2 Age : 14 Class : 1st Marks : 70 Grade : a ------------ Name : n3 Age : 16 Class : 2nd Marks : 90 Grade : s ------------ Name : n4 Age : 14 Class : 3rd Marks : 40 Grade : b ------------ Name : n5 Age : 12 Class : 1st Marks : 50 Grade : b ------------ Name : n6 Age : 18 Class : 3rd Marks : 30 Grade : c ------------ Name : n7 Age : 11 Class : 1st Marks : 80 Grade : a ------------ Name : n8 Age : 10 Class : 2nd Marks : 20 Grade : d ------------
Sortie:
a = ['Name', 'Age', 'Class', 'Marks', 'Grade'] b = [['n1', 12, '1st', 40, 'b'], ['n2', 14, '1st', 70, 'a'], ['n3', 16, '2nd', 90, 's'], ['n4', 14, '3rd', 40, 'b'], ['n5', 12, '1st', 50, 'b'], ['n6', 18, '3rd', 30, 'c'], ['n7', 11, '1st', 80, 'a'], ['n8', 10, '2nd', 20, 'd']] for lst in b: for t in [n for n in zip(a,lst)]: # For tuple in the list of tuples generated by zip() print(f"{t[0].ljust(7)}: {t[1]}") # Print the 0 index (first element) of the tuple with ljust (padding) of 7 spaces, followed by a colon, space, and the 1 index (second element) of the tuple print('------------')
Merci. Je ne comprends pas cette partie print (f "{t [0] .ljust (7)}: {t [1]}"). Je pense que c'est trop avancé pour moi.
Simple Pythonic-one-liner, avec un affichage élégant:
print(*[f"{a[x]:6}: {z}" for i in b for x,z in enumerate(i)], sep='\n')
pouvez-vous mentionner les résultats attendus plus élaborés? Est-ce que toutes les informations sur les étudiants devraient être incluses.
print (* (f "{k} \ t: {v}" pour i dans b pour k, v dans zip (a, i)), sep = "\ n")
ouprint ("\ n --- \ n" .join ("\ n" .join (f "{k} \ t: {v}" pour k, v dans zip (a, i)) pour i dans b ))
Non, juste un étudiant puis un autre. comme des boîtes.