2017-06-07 4 views
1

In meinem Python-Code, habe ich 2 ListenPython Listing 2 Listen in Bullet Formular

myList = ["Example", "Example2", "Example3"] 
mySecondList = ["0000", "1111", "2222"] 

Ich brauche diese zu drucken, so dass sie wie folgt aussehen:

- Example 0000 
- Example2 1111 
- Example3 2222 

Gibt es eine Möglichkeit zu erreichen, Dies?

+0

Ja, viele Möglichkeiten. Hast du es selbst versucht? – SiHa

Antwort

5

Ja, es ist, suchen Sie nach zip:

myList = ["Example", "Example2", "Example3"] 
mySecondList = ["0000", "1111", "2222"] 

for a, b in zip(myList, mySecondList): 
    print("- {} {}".format(a, b)) 
- Example 0000 
- Example2 1111 
- Example3 2222 

Die oben wird funktionieren, wenn die Listen die gleiche Größe haben, sonst sollte man sich in izip_longest oder zip_longest von itertools Modul je auf der Python-Version, die Sie verwenden

0

Ich würde empfehlen,verwendenoder zip_longest() für Ihre Frage.

Aber, ohne built-in Module/Funktionen zu verwenden. Sie können Ihre eigene "Hacky" -Methode sehr ähnlich der zip()-Funktion erstellen. Hier

ein Beispiel:

def custom_zip(a, b, fill=None): 
    length = max(len(a), len(b)) 
    for k in range(length): 
     if k > len(a): 
      yield fill, b[k] 
     elif k > len(b): 
      yield a[k], fill 
     else: 
      yield a[k], b[k] 

a = ["Example", "Example2", "Example3"] 
b = ["0000", "1111", "2222"] 

for k, v in custom_zip(a,b): 
    print("- {} {}".format(k, v)) 

Ausgang:

- Example 0000 
- Example2 1111 
- Example3 2222 

Auch Sie können an der Äquivalent zip() im official documentation einen Blick darauf werfen.