2017-07-04 6 views
0

Ich versuche, eine Liste von Begriffen zu nehmen und sie in einem bestimmten Format auszugeben.Formatieren von Elementen einer Liste in eine bestimmte Zeichenfolge

Zum Beispiel habe ich eine Liste von Verben:

verbs = ['eat', 'run', 'jump', 'play', 'walk', 'talk', 'send'] 

und ich möchte, dass meine Ausgabe ein String sein, wobei jedes Element in der Liste ist auch ein String von einem | abgegrenzte

magic(verbs) 

Ausgang:

"eat" | "run" | "jump" | etc. 

ich habe versucht, die .join m mit Ethod, aber das gibt mir nur eine große Reihe von Begriffen, die durch Pfeifen getrennt sind, anstatt, was ich will. Irgendwelche Ideen? Ich bin ziemlich neu bei Python und es tut mir leid, wenn das unglaublich niedrig-Braue ist oder etwas, das woanders beantwortet wurde.

+1

Verwenden Sie eine Liste Verständnis, das die Anführungszeichen um jedes Element legt, dann verwenden Sie '.join()' ihnen beitreten mit einem Rohr. – Barmar

+0

Danke allen! –

Antwort

3
verbs = ['eat', 'run', 'jump', 'play', 'walk', 'talk', 'send'] 
x=(' | '.join('"' + item + '"' for item in verbs)) 
print(x) 

können Sie sehen, ouput here

2

Versuchen mit:

verbs = ['eat', 'run', 'jump', 'play', 'walk', 'talk', 'send'] 
print("|".join(['"'+e+'"' for e in verbs])) 

Ausgang:

"eat"|"run"|"jump"|"play"|"walk"|"talk"|"send" 
2

Das tut, was Sie wollen:

def magic(terms): 
    print(' | '.join('"%s"' % term for term in terms)) 

verbs = ['eat', 'run', 'jump', 'play', 'walk', 'talk', 'send'] 
magic(verbs) # -> "eat" | "run" | "jump" | "play" | "walk" | "talk" | "send" 
2
verbs = ['eat', 'run', 'jump', 'play', 'walk', 'talk', 'send'] 

def magic(s): 
    return ' | '.join('"%s"' % x for x in s) 

print(magic(verbs)) 
# "eat" | "run" | "jump" | "play" | "walk" | "talk" | "send" 
0

Zwischen jedem Anführungszeichen gesetzte Verb, setzen Sie ein Rohr:

" | ".join('"{0}"'.format(verb) for verb in verbs) 
>>> verbs = ['eat', 'run', 'jump', 'play', 'walk', 'talk', 'send'] 
>>> print(" | ".join('"{0}"'.format(verb) for verb in verbs)) 
"eat" | "run" | "jump" | "play" | "walk" | "talk" | "send" 
+0

Bitte erläutern Sie den Downvote, damit ich die Antwort verbessern kann. Blinde Downvotes scheinen nur boshaft. :) – erip

Verwandte Themen