#python #python-2.7 #loops
#python #python-2.7 #циклы
Вопрос:
Итак, чего я пытаюсь достичь, так это проверить, существует ли значение в списке, и если оно существует, цикл должен быть пропущен it…it похоже, что это не работает.
Вот желаемый алгоритм:
- Прочитайте текстовый файл построчно, каждая строка является URL.
- Для каждого URL-адреса перейдите по URL-адресу и извлеките строку json из этого URL-адреса
- проверьте, является ли эта строка json уникальной или уже существует в нашем списке.
- если это exists…do ничего, если этого не произойдет: добавьте это в наш список и выполните другие действия
в пункте 4 проблема? Я улавливаю только частичные повторяющиеся значения, то есть, если одно и то же повторяющееся значение, но не все дублирующие значения?
Я хочу перехватывать дубликаты, даже если они существуют с разных URL-адресов? Я объявил список на самом верху вне цикла, но все еще не могу его перехватить?
Пример:
inputs = [] #define the list outside the loop to make sure it gets populated with every single json string
for url_to_get_data_from in file: #for every url...
while y < 50:
item = str(json_string_from_the_internet[y])
#this item is sometimes unique but not always...
if(item in inputs): #lets see if this json string is in the list
print("This already exists in our inputs list, so we skip it")
else:
inputs.append(item) #add the item for the upcoming loop cycles
print("this item does not exist in our inputs, we continue with our code below")
print("no more while loop and no more urls...done with work)
Комментарии:
1. Вы должны использовать
continue
, чтобы пропустить это, как объяснено там2. @Nenri: попробую это, спасибо
Ответ №1:
if(item in inputs): #lets see if this json string is in the list
pass
else:
inputs.append(item) #add the item for the upcoming loop cycles
print("this item does not exist in our inputs, we continue with our code below")
или вы можете попробовать это :
if(item not in inputs):
inputs.append(item)
Комментарии:
1. спасибо, ну, я нашел другое, совсем другое решение без прохождения / продолжения, но казалось, что проблема сохранится, даже если я все равно это исправлю.
2. нет проблем, если вы можете, пожалуйста, показать больше деталей, я постараюсь это исправить
Ответ №2:
В python блоки кода обозначаются отступом строки, который строго соблюдается, все операторы внутри блока должны иметь одинаковый отступ. Ваш код, введенный выше, не соответствует требованиям к отступам. Например, если я правильно понимаю ваш код, оператор «item =» должен иметь тот же отступ, что и «if» и «else», но этого не происходит. Операторы, включенные в «else:», также имеют другой отступ. Я бы предложил сначала исправить отступ, а затем проверить, все ли еще существует проблема.
Комментарии:
1. Я знаю! 🙂 И, честно говоря, я отчасти ненавижу это, как человек, работающий на c / c #, я люблю скобки .. вся эта штука с пробелами в Python все еще поражает меня, я даже смешиваю табуляции и пробелы в одной программе, так что это может быть проблемой, как вы сказали..