Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186

Список списков после добавления списков остается пустым

02.04.2018, 22:02. Показов 2186. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте имеется код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def lookup_main_url(driver):
   subjects = []
   ....
   for county in county_all:
      ....
      for region in regions_all:
         ....
         for city in cities_all:
            .....
            subject=[]
            subject.append(county_title)
            subject.append(region_title)
            subject.append(city_title)
            subjects.append(subject)
            subject.clear()
   return subjects
if __name__ == '__main__':
   subjects=lookup_main_url(driver)
   print(subjects)
Возвращает
Python
1
[[], [], [], [], [], [], [], [], []]
Почему?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2018, 22:02
Ответы с готовыми решениями:

Как из двух списков сделать один список кортежей/списков
Доброго времени суток! Буду очень благодарен, если поможете из двух списков, к примеру a и b, сделать список c, который содержит пары...

После минимизации выводится список, состоящий из пустых списков
Здравствуйте. Пишу скрипт для минимизации логических функций от любого количества переменных (л/р). Проблема заключается в том, что...

Как сложить сумму из чисел сотен списков и узнать количество списков?
Доброго времени суток! Не могу понять как сложить сумму из несколько тысяч списков. Подскажите пожалуйста? В коде удалил из списков все...

12
 Аватар для blz
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
02.04.2018, 22:24
выглядит так, будто в subjects.append(subject) subject == [], что противоречит 3 строкам кода выше. похоже, что Вы не все нам показываете
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
02.04.2018, 22:32  [ТС]
Если после
Python
1
2
3
subject.append(county_title)
subject.append(region_title)
subject.append(city_title)
Добавить
Python
1
print(subject)
То выведет
Python
1
2
3
4
5
6
7
8
9
...
['Дальневосточный', 'Амурская, обл', 'Благовещенск']
['Дальневосточный', 'Амурская, обл', 'Зея']
['Дальневосточный', 'Амурская, обл', 'Новобурейский']
['Дальневосточный', 'Амурская, обл', 'Свободный']
['Дальневосточный', 'Амурская, обл', 'Сковородино']
['Дальневосточный', 'Амурская, обл', 'Тында']
['Дальневосточный', 'Амурская, обл', 'Шимановск']
....
Что говорит, что ваше предположение неправильно
0
 Аватар для blz
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
02.04.2018, 22:35
Цитата Сообщение от danilshik Посмотреть сообщение
[[], [], [], [], [], [], [], [], []]
может получиться только после 9 раз list.append([])

после subjects.append(subject) дбавьте print(subjects)
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
02.04.2018, 22:40  [ТС]
Как тут цитировать?
Вывод очень большой, начальный отрывок:
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[['Дальневосточный', 'Амурская, обл', 'Белогорск']]
[[], ['Дальневосточный', 'Амурская, обл', 'Благовещенск']]
[[], [], ['Дальневосточный', 'Амурская, обл', 'Зея']]
[[], [], [], ['Дальневосточный', 'Амурская, обл', 'Новобурейский']]
[[], [], [], [], ['Дальневосточный', 'Амурская, обл', 'Свободный']]
[[], [], [], [], [], ['Дальневосточный', 'Амурская, обл', 'Сковородино']]
[[], [], [], [], [], [], ['Дальневосточный', 'Амурская, обл', 'Тында']]
[[], [], [], [], [], [], [], ['Дальневосточный', 'Амурская, обл', 'Шимановск']]
[[], [], [], [], [], [], [], [], ['Дальневосточный', 'Еврейская, Аобл', 'Биробиджан']]
[[], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Камчатский, край', 'Елизово']]
[[], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Камчатский, край', 'Петропавловск-Камчатский']]
[[], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Магаданская, обл', 'Магадан']]
[[], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Арсеньев']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Артем']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Большой Камень']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Владивосток']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Вольно-Надеждинское']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Дальнегорск']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Дальнереченск']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Кавалерово']]
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ['Дальневосточный', 'Приморский, край', 'Лесозаводск']]
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.04.2018, 22:44
Лучший ответ Сообщение было отмечено Black Fregat как решение

Решение

Цитата Сообщение от danilshik Посмотреть сообщение
subject.clear()
Зачем?
1
 Аватар для blz
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
02.04.2018, 22:45
Цитата Сообщение от danilshik Посмотреть сообщение
Вывод очень большой
покажите функцию полностью. не соответствует вывод приведенному листингу.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
02.04.2018, 22:47  [ТС]
А ну да, там же перезаписывается, можно удалить

Добавлено через 47 секунд
Полностью код (парсер)
Кликните здесь для просмотра всего текста

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
def lookup_main_url(driver):
    subjects = []
    driver.get(url_main)
    try:
        #Ожидаем 30сек появления элемента выбора города
        select = WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.CLASS_NAME,"header-menu-city")))
        select.click()
    except (TimeoutException):
        print("Не найден li выбора города")
    try:
        window_div = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.XPATH, ".//div[contains(@class,'select-city-modal modal in')]")))
        regions_group = window_div.find_element_by_class_name("districts")
        county_all = regions_group.find_elements_by_class_name("modal-row")
    except (TimeoutException):
        print("Не найден округ")
 
    for county in county_all:
        county_a = county.find_element_by_tag_name('a')
        county_title = county_a.text
        county_a.click()
        try:
            window_div = WebDriverWait(driver, 30).until(
                EC.visibility_of_element_located((By.XPATH, ".//div[contains(@class,'select-city-modal modal in')]")))
            regions = window_div.find_element_by_class_name("regions")
            regions_all = regions.find_elements_by_xpath("//*[contains(@style,'list-item')]")
            regions_all.pop(0)
        except (TimeoutException):
            print("Не найден регион 2")
 
        for region in regions_all:
            region_a = region.find_element_by_tag_name("a")
            region_title = region_a.text
            region_a.click()
            try:
                window_div = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.XPATH, ".//div[contains(@class,'select-city-modal modal in')]")))
                cities = window_div.find_element_by_class_name("cities")
                cities_all = cities.find_elements_by_xpath(".//li[contains(@style,'list-item')]")
                cities_all.pop(0)
            except (TimeoutException):
                print("Не найден город")
 
            for city in cities_all:
                city_a = city.find_element_by_tag_name('a')
                city_title = city_a.text
                subject=[]
                subject.append(county_title)
                subject.append(region_title)
                subject.append(city_title)
                subjects.append(subject)
                print(subjects)
 
                subject.clear()
 
    driver.quit()
    return subjects
 
 
 
if __name__ == '__main__':
    start_time=time.time()
    driver = init_driver()
    subjects=lookup_main_url(driver)
    print(subjects)
    print(time.time()-start_time)

Объясните, как тут цитировать
0
 Аватар для blz
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
02.04.2018, 22:59
все ясно

Добавлено через 35 секунд
вы добавляете список в subjects, потом его очищаете.

Добавлено через 2 минуты
конечно, тут все мягко говоря неоптимально, но хотя бы так сделайте:
вместо:
Python
1
2
3
4
5
               subject=[]
                subject.append(county_title)
                subject.append(region_title)
                subject.append(city_title)
                subjects.append(subject)
сделайте
Python
1
subjects.append([county_title, region_title, city_title])
subject вообще не нужен.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
02.04.2018, 23:03  [ТС]
Спасибо, понял в чем тут ошибка, просто удалил
Python
1
subject.clear()
Я почему то подумал, что список становится, как перед инициализацией.
Так как тут цитировать, не вижу в упор кнопку
0
 Аватар для blz
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
02.04.2018, 23:08
Цитата Сообщение от danilshik Посмотреть сообщение
как тут цитировать
выделяете что цитируете и появится:
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
02.04.2018, 23:09  [ТС]
Цитата Сообщение от blz Посмотреть сообщение
Сообщение от danilshik
как тут цитировать
выделяете что цитируете и появится:
Спасибо
0
 Аватар для blz
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
02.04.2018, 23:10
Цитата Сообщение от danilshik Посмотреть сообщение
список становится, как перед инициализацией
вы добавляете в subjects список (не копию списка), а потом его очищаете (а не ребиндите присвоением)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2018, 23:10
Помогаю со студенческими работами здесь

Объединение 2 и более списков в список списков по индексу без использования циклов
Уважаемые товарищи, подскажите есть ли способ объединения 2 и более списков в список списков по индексу без использования циклов. К примеру...

Копирование данных двумерного массива состоящего из списков в список списков.
Для нахождения МСТ (минимального остового дерева) написал функцию, которая принимает масив - гарф. private List<Point>...

Написать программу, которая получает список из списков из списков чисел
Всем привет, мне нужно написать программу, которая получает список из списков из списков чисел, ,],,],,]] примерно так , и потом...

Как сериализовать Список списков списков?
У меня есть игра, в ней пользователь может сохранять уровни и играть их в будующем. На каждом уровне есть одна или несколько линий...

создать програму которая со списков слов L1 i L2 формирует новый список L занося в него по 1ному те слова, что находяться хотяб в одном из списков
создать програму которая со списков слов L1 i L2 формирует новый список L занося в него по 1ному те слова, что находяться хотяб в одном из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru