У меня есть текстовый файл со строкой, в которой есть буква (начинающаяся с буквы «A», назначенной случайной стране). Я импортирую эту строку из текстового файла для использования с моим кодом, где у меня есть список стран и тарифов. Я раздеваю строку так, чтобы я остался со страной, и затем я хочу иметь возможность найти страну в строке в списке, который я создал. Проблема в том, что когда я запускаю цикл for, чтобы найти название страны в строке в списке списков, где в каждом младшем списке есть название страны, ВВП и показатель, цикл for запускается и не можетнайти страну в строке, даже если они одного типа и одинакового написания. Позвольте мне опубликовать мой код и вывод ниже.
Когда я создал txt-файл или csv-файл, я использовал это:
f = open("otrasvariables2020.txt", "w")
f.write(str(mis_letras_paises) + "\n")
f.write(str(mis_paises) + "\n") #(This is the string I need)
f.write(str(mis_poblaciones) + "\n")
f.close() #to be ready to use it later
Позвольте мне опубликовать некоторые выходные данные.
import linecache
with open("otrasvariables2020.txt") as otras_variables:
mis_paises = (linecache.getline("otrasvariables2020.txt",2))
#Here I get the line of text I need, I clean the string and create a
#list with 5 countries.
lista_mis_paises = mis_paises.translate({ord(i): None for i \
in "[]-\'"}).split(", ")
for i in lista_mis_paises:
if "\n" in i:
print(i)
i.replace("\n", "")
for i in lista_mis_paises:
if len(i) <= 2:
lista_mis_paises.pop(lista_mis_paises.index(i))
Заключительная частьвопроса: Итак, в конечном итоге я хочу найти в массиве младший список стран в списке / строке, которую я импортировал из текстового файла. Как только я найду этот младший список, я смогу использовать показатели и другие значения для расчетов, которые мне нужно сделать. Есть идеи что не так? Результат должен быть следующим: Afganistán и другие 4 страны должны быть найдены в списке списков, который, для Afganistán, оказывается первым пунктом, так что теперь я должен быть в состоянии создать еще один список списков, но только с 5страны вместо 185 стран, с которых я начал.