2017-01-16 5 views
1

Ich habe ein Programm erstellt, das zufällige Elemente aus Listen auswählt, die aus Textdokumenten importiert werden, die dem Thema z. Essen in isst enthält Pizza, Pasta und Burger. Wenn das Ergebnis jedoch gedruckt wird, haben die ausgewählten Elemente Klammern, eckige Klammern und Sprachmarkierungen. Wie würde ich sie entfernen?Python verschachtelte Listen Klammer entfernen

things_to_do=[ 
("eat", [(foods[randint(0,20)])]), 
("do", [(sports[randint(0,60)])]), 
("drink a",[(coffees[randint(0,20)])])] 



print "Whilst in town you decided to " + str(things_to_do[randint(0,2)])] 
+0

Verwenden Sie die 'replace()' Methode, z. ("(", "")) – smoggers

+1

Hier erfahren Sie, wie Sie ein [minimales, vollständiges, überprüfbares Beispiel] (https://stackoverflow.com/help/mcve). –

Antwort

4

Diese Klammern, Zitate, etc. sind nur ein Teil der string representation von komplexere Datenstrukturen wie lists oder tuples. Sie müssen sich richtig vorbereiten/formatieren Sie Ihre Daten für schönere Ausgabe:

things_to_do = [ 
    ("eat", foods[randint(0,20)]), # less complex than the singleton lists in your code 
    ("do", sports[randint(0,60)]), 
    ("drink a", coffees[randint(0,20)]) 
] 
verb, obj = things_to_do[randint(0,2)] 
print "Whilst in town you decided to {v} {o}".format(v=verb, o=obj) 

String formatting in the docs.

+0

Danke, es hat wirklich geholfen! –

0

Verwenden yourVar[start, end] Zeichenfolge zwischen dem Anfang und dem Ende Zeichen, zum Beispiel zu drucken, wenn mein Text myVar = "[(hello)]"myVar[3:-3] ist hello zeigen

+0

erstellen, jedoch kombiniert es zwei Variablen und sie können völlig unterschiedliche Längen haben zB ("trink ein", ['weißer wein']) oder ('essen', ['pizza']) –

0

Das liegt daran, dass Sie keine Strings, sondern Tupel und Listen drucken.

print "Hi my name is "+str(("really",["Tom"])) 

führt zu

Hi my name is ('really', ['Tom']) 

So möchten Sie/für den Zugriff auf Ihre Variablen manipulieren Strings drucken

  • Verwendung [0] einen Eintrag in Ihrem Tupel zuzugreifen oder diese Liste
  • Drucken Sie Elemente in einem Array wie diesem ','. join (yourArray)
  • oder noch besser Format verwenden! https://pyformat.info/ "hi {0}". Format ("tom")
Verwandte Themen