Помогите упростить код и избавиться от двойного For
Вот часть кода. После первого print (vid_avto) результат таков - [('Мар',), ('Тро',), ('Авт',)]. Приходится в двойном цикле for пробежаться по списку и создать новый список. После второго print(list_vid_avto) результат уже тот что мне надо - ['Мар', 'Тро', 'Авт']. Мне очень не нравится это двойной for. Подскажите есть ли другая возможность добиться желаемого результата и упростить сам код. Учусь…
def sql_database_transport():
try:
sqlite_connection = sqlite3.connect('Bus_stop.db')
cursor = sqlite_connection.cursor()
sql_select = f"SELECT autotransport.vid_avto FROM autotransport"
vid_avto = cursor.execute(sql_select).fetchall()
print (vid_avto)
list_vid_avto = []
for vid_a in vid_avto:
for vd in vid_a:
list_vid_avto.append(vd)
print(list_vid_avto)
return list_vid_avto
Ответы (1 шт):
Автор решения: Dmitry Websmith
→ Ссылка
Если я правильно понял, list_vid_avto должен содержать нулевые элементы кортежей, входящих в vid_avto, тогда:
def sql_database_transport():
try:
sqlite_connection = sqlite3.connect('Bus_stop.db')
cursor = sqlite_connection.cursor()
sql_select = f"SELECT autotransport.vid_avto FROM autotransport"
vid_avto = cursor.execute(sql_select).fetchall()
print (vid_avto)
list_vid_avto = []
for vid_a in vid_avto:
list_vid_avto.append(vid_a[0])
print(list_vid_avto)
return list_vid_avto
except Exception as e:
print(e)