2017-01-16 3 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 из более сложные структуры данных, такие как lists или tuples. Вам необходимо правильно подготовить/форматировать данные для более хорошего выхода:

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}". Format ("tom")
Смежные вопросы