Как убрать кавычки из начала и конца списка - PullRequest
2 голосов
/ 03 апреля 2020

Мой список не работает должным образом, потому что он создан как ["'carrots, 'tomatoes', 'lettuce'"], а не ['carrots, 'tomatoes', 'lettuce']

У меня есть текстовый файл с 'carrots, 'tomatoes', 'lettuce', записанным в одной строке, и вот как я его пишу в мой список:

veggie_list =[]
x = open('veggies.txt','r')
for item in x:
    veggie_list.append(item)

Ответы [ 4 ]

1 голос
/ 03 апреля 2020

Вы можете преобразовать список в строку и заменить "пробелом, а затем использовать eval , он вернет вам список

veggie_list =[]
x = open('veggies.txt','r')
for item in x:
    veggie_list.append(item)
veggie_list = eval(str(veggie_list).replace('"',''))
1 голос
/ 03 апреля 2020

Вы вставляете строку "морковь, помидоры", "салат". Я думаю, что вы хотите сделать это:

text = x.read()
text = text.replace("'","")
enter code here
veggie_list = text.split(",")
1 голос
/ 03 апреля 2020

Попробуйте это (при условии, что в вашем текстовом файле несколько строк):

veggie_list = []
with open('veg.txt','r') as x:
    for item in x:
        veggie_list.extend(item.replace("'", "").split(','))

print(veggie_list)

Выходы:

['carrots', ' tomatoes', ' lettuce']

Если вас интересует только первая строка вашего текстового файла :

veggie_list = []
with open('veg.txt','r') as x:
    veggie_list = x.read().replace("'","").split(',')

print(veggie_list)

Один вкладыш в Python с использованием понимания списка :

with open('veg.txt','r') as x:
    print([j for i in x for j in i.replace("'","").split(',')])

ОБЪЯСНЕНИЕ (для первого кода):

Сначала необходимо удалить одинарные кавычки из прочитанной строки ("'carrots', 'tomatoes', 'lettuce'") из файла. Вы можете использовать replace () метод объекта str. Этот метод возвращает копию измененной строки и не меняет исходную строку.

После этого вы должны остаться с str "carrots, tomatoes, lettuce". Теперь я использовал метод split () для разделения всей строки на отдельные строки, используя "," в качестве разделителя.

Этот метод возвращает список ['carrots', ' tomatoes', ' lettuce'].

0 голосов
/ 03 апреля 2020

У меня есть идея, но это зависит и от того, как написан ваш текстовый файл:

veggies = []
veggie_list = []
x = open('veggies.txt','r')
for item in x:
    veggie.append(item)
for i in veggies:
    veggie_list.append(i)

Это, вероятно, тот случай. Внешние скобки могут указывать на то, что ["'carrots, 'tomatoes', 'lettuce'"] - это, вероятно, только один элемент в списке. Если вы сделаете это дважды, это может сработать. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...