1
votes

Imprimer la liste de compréhension sous forme de chaîne

Supposons que j'ai une liste de compréhension:

for line in list1:
   print(line);

Comment imprimer ceci en utilisant une boucle? J'ai essayé de faire

list1 = [("hello","my name"),("is","hayhay")]

Mais cela ne fonctionne pas.


4 commentaires

Ceci est une liste de tuples, qui sont également des itérateurs. Donc pour chaque élément (c'est-à-dire pour chaque " ligne ", vous devez parcourir ce tuple pour afficher les éléments. Une boucle for imbriquée, en d'autres termes.


Juste un FYI, il n'y a aucune compréhension dans ce code. Cela s'appelle simplement une liste.


veuillez nous montrer votre résultat attendu. Merci.


Voulez-vous dire que vous voulez qu'ils soient joints sous forme de chaîne?


4 Réponses :


0
votes

Python ne termine pas les lignes avec ";" Vous devez décompresser le tuple pour pouvoir imprimer la chaîne à l'intérieur, si c'est ce que vous essayez d'atteindre

list1 = [("hello","my name"),("is","hayhay")]
for line in list1:
    print(*line)


4 commentaires

voter contre la réponse sans même ajouter suffisamment d'informations pour résoudre le problème, où se trouve le résultat attendu. Quoi qu'il en soit, j'ai édité le code, cela devrait fonctionner! Vous essayez de décompresser le tuple


La réponse était incorrecte en fonction de quoi? Comment avez-vous déterminé cela? Je n'ai pas de sortie à comparer en premier lieu


Je voulais dire que vous n'avez pas besoin; pour terminer chaque ligne ici car je l'ai supprimée, deuxièmement, ils n'ont pas spécifié de sortie pour voir exactement ce dont ils avaient besoin, j'ai donc fait le meilleur jugement et j'ai supposé qu'ils étaient débutants avec python et avaient probablement un problème de syntaxe. Ne soyez pas rapide pour juger que j'essaie de ne pas aider beaucoup!


** Et le code qu'ils ont fonctionnerait en fait sans le point-virgule! **



4
votes

Si vous souhaitez imprimer chaque tuple:

list2 = ""
for i in list1:
    for l in i:
        list2 += l+" "
print(list2)

hello my name is hayhay 

Si vous souhaitez imprimer comme une série de chaînes:

for i in list1:
    for l in i:
        print(l)

hello
my name
is
hayhay

Si vous souhaitez imprimer sous forme de chaîne unifiée:

for i in list1:
    print(i)

('hello', 'my name')
('is', 'hayhay')


2 commentaires

@Hay Hay Bun Bun Si cela répond à votre question - super! (marquer comme réponse pour que les gens sachent que vous avez trouvé votre solution). Sinon, veuillez afficher votre sortie attendue. :)


désolé, il a dit que je devais attendre dix minutes ou quelque chose du genre, merci encore! tu es si utile



1
votes

Vous pouvez utiliser ceci:

list1 = [("hello","my name"),("is","hayhay")]

str='' 
for key,item in dict(list1).items(): 
  str+=key + " " + item + " " 
print(str[:-1]) 

# hello my name is hayhay


1 commentaires

@hay hay bun bun - c'est la prochaine itération que j'allais publier. Excellente réponse si vous essayez de créer une seule chaîne unifiée.



0
votes

Ma réponse n'est peut-être pas la plus efficace, mais elle fait l'affaire.

Veuillez voir ci-dessous.

Merci,

list1 = [("hello","my name"), ("is", "hayhay")];
for i in range(len(list1)):
    for j in range(len(list1[0])):
        print(list1[i][j]); 


0 commentaires