2017-01-16 105 views
1

我已經創建了一個程序,該程序從與該主題相關的文本文檔導入的列表中選擇隨機項。食物中的食物包含披薩,意大利麪和漢堡。但是,當打印出結果時,所選項目會有括號,方括號和語音標記。我將如何刪除它們?Python嵌套列表支架刪除

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

使用'replace()'方法。 (「(」,「」) – smoggers

+1

閱讀有關如何創建[最小,完整,可驗證示例](https://stackoverflow.com/help/mcve)。 –

回答

4

這些支架,報價等只是的string representation的一部分更復雜的數據結構,如liststuples。你需要一個更好的輸出好好準備/格式化數據:

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

謝謝!它真的幫了大忙! –

0

使用yourVar[start, end]來打印字符串的開始和結束字符之間,例如,如果我的文字是myVar = "[(hello)]"myVar[3:-3]將顯示hello

+0

但它結合了兩個變量,它們可以是完全不同的長度例如('喝',['白葡萄酒'))或('吃',['比薩']) –

0

這是因爲你不打印字符串,而是元組和列表。

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

導致

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

所以,你要訪問/操縱的變量來打印字符串

  • 使用[0]在你的元組或列表
  • 訪問某個項目在這樣的數組中打印項目','。join(yourArray)
  • 甚至更​​好的使用格式! https://pyformat.info/「hi {0}」。格式(「tom」)