#python #arrays
#python #массивы
Вопрос:
Прямо сейчас у меня есть это.
print (name.text.strip(), genre.text.strip(), bouquets.text.strip(), encryption.text.strip(), sid.text.strip(), nid.text.strip(), tid.text.strip(), sep = 't')
Это дает желаемый результат. Как я могу добавить эту строку в массив вместо ее печати?
Я пытался
channel = (name.text.strip(), genre.text.strip(), bouquets.text.strip(), encryption.text.strip(), sid.text.strip(), nid.text.strip(), tid.text.strip(), sep = 't')
channels.append (channel)
Но это не работает.
channel = (name.text.strip(), genre.text.strip(), bouquets.text.strip(), encryption.text.strip(), sid.text.strip(), nid.text.strip(), tid.text.strip(), sep = 't')
^
Ошибка синтаксиса: недопустимый синтаксис
Я думаю, это из-за разделения табуляции, может быть?
Кто-нибудь знает, как это сделать правильно?
Комментарии:
1. в Python есть списки, а не массивы. и список определяется как
channel = []
неchannel = ()
2. Что вы подразумеваете под «Но это не работает».? Что происходит с вашим вторым фрагментом кода и что вы хотите, чтобы он делал по-другому?
3. Вы поняли, что
sep
является аргументом4.
str.join([name.text.strip(), genre.text.strip(), bouquets.text.strip(), encryption.text.strip(), sid.text.strip(), nid.text.strip(), tid.text.strip()])
5. Удалите
sep = 't'
из вашего последнего элемента и используйте квадратные скобки:[name.text.strip(), ...]
Ответ №1:
Сначала вам нужно создать str
, а затем его можно добавить в ваш массив.
channel = "t".join([
name.text.strip(),
genre.text.strip(),
bouquets.text.strip(),
encryption.text.strip(),
sid.text.strip(),
nid.text.strip(),
tid.text.strip()
])
channels.append(channel)
Поскольку вы применяете text.strip()
к каждому элементу, вы можете упростить это, используя представление списка:
elements = [name, genre, bouquets, encryption, sid, nid, tid]
channel = "t".join(
x.text.strip() for x in elements
)
channels.append(channel)
Ответ №2:
Если «правильно» также означает уменьшение дублирования кода, вы можете использовать:
channel = (name, genre, bouquets, encryption, sid, nid, tid)
channel = "t".join(item.text.strip() for item in channel)
channels.append(channel)