Проблемы с использованием цикла for со строкой из текстового файла для поиска индекса в списке списков - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть текстовый файл со строкой, в которой есть буква (начинающаяся с буквы «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 стран, с которых я начал.

1 Ответ

0 голосов
/ 10 ноября 2019

Если вас беспокоит удаление специальных символов, которые вы не хотите использовать, я сделаю что-то вроде этого:

countries = linecache.getline("otrasvariables2020.txt",2).strip('[]-\'"').rstrip('\n').split(', ')

Примечание: with open("otrasvariables2020.txt") as otras_variables: не используется в коде, который выподелился выше, поэтому можно удалить.

Надеюсь, это поможет.

...