2016-03-29 8 views
0

Ich habe drei Strings. Jede Zeichenfolge hat Namen, Adressen und Postleitzahl.Join drei Strings in einem Block mit Python

Erste string:

Joao Miesler 
Bill Gates 
Kevin Mitnick 

Zweiter String:

Street kit number 3 
Street foo number 2 
Street OOk number 4 

Dritte string:

2415-568 
1452-856 
1234-568 

ich den Ausgang möchte so etwas wie zu sein:

Joao Miesler 
Street kit number 3 
2415-568 

Bill Gates 
Street foo number 2 
1452-856 

Kevin Mitnick 
Street OOk number 4 
1234-568 

Diese Information wurde von einem excell Arbeitsblatt wie folgt extrahiert:

#Get columns name 
for i in range(13, high_row, 1): 
    nome = sheet['E%s' % i].value 


#Get column adresses 
for i in range(13, high_row, 1): 
    morada = sheet['F%s' % i].value 

#Get Postal Code column 
for i in range(13, high_row, 1): 
    cp = sheet['G%s' % i].value 

Können Sie mir in die richtige Richtung? Etwas Licht am Ende des Tunnels wäre schön.

Danach möchte ich ein A4-Papier machen und die Ausgabe in Quadrate teilen. Irgendeine gute Bibliothek, die ich benutzen kann, um das zu ermöglichen?

+1

Versuchen Sie, diese Werte alle in gleichem 'for' bekommen. – Lafexlos

Antwort

0

Warum haben drei Schleifen, wenn Sie nur eine haben könnte?

for i in range(13, high_row, 1): 
    nome = sheet['E%s' % i].value 
    morada = sheet['F%s' % i].value 
    cp = sheet['G%s' % i].value 

    data = [nome, morada, cp] 
    print('\n'.join(map(str,data))) 
+0

es tat genau das, was ich wollte. Ich hatte nur ein Problem: umzuspannen. Ich folgte diesem Link [Konvertieren von Unicode in Python] (http://stackoverflow.com/questions/13485546/converting-unicode-to-in-python), aber Zeichen wie 'º' oder 'ç' bekommen seltsame Symbole. Hast du Licht am Ende des Tunnels für mich? –

+0

Hmm, entschuldige ich nicht. Es könnte nur eine Frage sein, wo du die Charaktere druckst. Bei einigen Terminals können Sie die Kodierungseinstellungen ändern. –

0

Ihre Daten in Strings mehrzeiligen Unter der Annahme:

names = """Joao Miesler 
Bill Gates 
Kevin Mitnick""" 

die Pythonic Weg, dies zu tun, auf Listen der Linien zu bedienen ist und sich ihnen anzuschließen zip mit:

names = names.split('\n') 
addresses = addresses.split('\n') 
phone_numbers = phone_numbers.split('\n') 

for name, address, phone in zip(names, addresses, phone_numbers): 
    print('%s\n%s\n%s\n' % (name, address, phone)) 
0

Wenn Sie Listen zum Speichern jeder Zeile der 3 Zeichenfolgen entweder separat oder zusammen. Sie können auswählen, welche Zeilen mit Grundlistenfunktionalität gedruckt werden sollen.

So würde es wie folgt aussehen:

list1 = ['Joao Miesler', 'Bill Gates', 'Kevin Mitnick'] 
list2 = ['Street kit number 3', 'Street foo number 2', 'Street OOk number 4'] 
list3 = ['2415-568', '1452-856', '1234-568'] 

print(list1[0],\n,list2[0],\n,list3[0]) 

etc

0

diejenigen sind Unter der Annahme, Multi-Line-Strings geteilt durch \n und haben alle die gleiche Länge

s1a = s1.split('\n') 
s2a = s2.split('\n') 
s3a = s3.split('\n') 

newString = '' 
for i in range(len(s1a)): 
    newString += (s1a[i]+'\n') 
    newString += (s2a[i]+'\n') 
    newString += (s3a[i]+'\n') 
    newString += '\n'