Top.Mail.Ru
Ответы
Аватар пользователя
6лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Добавление элемента в список

В Python, при добавлении элемента в список с помощью append, я ожидаю увидеть нечто вроде:
['31955189', '38274957']
Но при выполнении следующего кода (добавляю элементы в пустой список):
def get(item, field):
result = []
for items in field:
popitka = int(todos2['response'][item][items])
result.append(popitka)
return result
second = []
for i, item in enumerate(todos2['response']):
second.append(get(i, ['id']))
у меня выходит следующее:
['[31955189]', '[38274957]', '[40975081]']
Что не так? Как избавиться от этих не эстетичных квадратных скобочек? По сути, у меня выходят вложенные в список списки, то есть при каждой итерации добавляется уже список, состоящий из одного элемента. По окончании решения данной мне задачи они мне будут мешать.
Но, если выполнить нечто подобное следующему, то можно добиться необходимого результата:
second = tuple(second[0]) #Нужно для каждого добавленного элемента.
#Можно через for, но у меня есть сомнения в правильности этого действия.
print(second)
#Result: (20834091,)
Но выполнять эту неприятную процедуру нужно для каждого добавленного элемента.
Вот так без извращений мне не подходит (выхлоп мне не нравится):
second = tuple(second)
print(second)
print(second[0])
#Result: ['[31955189]', '[38274957]', '[40975081]']
#Result: [31955189]
Быть может я просто запарился и проблемы нет?

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

замени
second.append(get(i, ['id']))
на
second.extend(get(i, ['id']))
- получишь не список списокв, а все элементы на одном уровне

Аватар пользователя
Мудрец
6лет

если уж сильно не нравится, перед добавлением новой строки в список пройдись по ней методом replace(старый символ, новый символ) - таким образом можно заменить квадратные скобки на ""(пустоту) и получить желаемый эффект. но это чет костыль дикий. скинь полностью код на https://pastebin.com/ и я гляну подробнее, т. к. всех этих ненужных телодвижений, я уверен, можно избежать, если понять, где ты накосячил с архитектурой.

вот костыльный вариант, если лень разбираться:

old_list = # тут не исправленный список
new_list = [] # тут будет исправленный
perem = str()
for i in range(len(old_list)-1):
____perem = str(old_list[i]).replace('[','')
____perem = perem.replace(']','')
____new_list.append(perem)
____perem = str()