Разделение элементов в списке списка, который представляет собой строку

#python #python-3.x #list

Вопрос:

У меня есть список строк списка. Я хочу разделить первый элемент.

 li = ["['ABC', 'DEF']",
      "['GHI', 'JKL']",
      "['MNO', ' ']",
      "['PQR', 'STU']"]
 

Я хочу получить «ABC» в качестве вывода.

Вот мой фрагмент кода:

 print(li[0][0])
 

Я получаю» [«. Я знаю причину. Я попытался преобразовать его в список как список(li). Но все в духе. Кто-нибудь может помочь, пожалуйста.

Ответ №1:

Оцените строки в вашем списке, чтобы преобразовать его в список списков:

 import ast
li = [ast.literal_eval(x) for x in li]
 

затем вы можете продолжить, как требуется:

 print(li[0][0])

'ABC'
 

Комментарии:

1. @Удджвал Махаджан не волнуйся

Ответ №2:

Для того, чтобы получить «азбуку»

 eval(li[0])[0]
 

Ответ №3:

Воспользуйся json.loads

 import json

li = ["['ABC', 'DEF']",
      "['GHI', 'JKL']",
      "['MNO', ' ']",
      "['PQR', 'STU']"]
li = [json.loads(x.replace("'", """)) for x in li]
print(li[0][0])
 

выход

 ABC
 

Ответ №4:

Вот как вы можете это сделать:

 li = [['ABC', 'DEF'],
      ['GHI', 'JKL'],
      ['MNO', ' '],
      ['PQR', 'STU']]
print(li[0][0])
 

Комментарии:

1. Приятель, вот что я спрашиваю, как преобразовать в этот список

2. посмотрите, говорите ли вы, что li = [«[‘ABC’, ‘DEF’]», «[‘GHI’, ‘JKL’]», «[‘MNO’, ‘ ‘]», «[‘PQR’, ‘STU’]»] это список списка, тогда это неправильно, это просто список. далее список списка будет таким: li = [[‘ABC’, ‘DEF’], [‘GHI’, ‘JKL’], [‘MNO’, ‘ ‘], [‘PQR’, ‘STU’], Потому что, когда вы ставите»», это делает внутренний список строкой.

3. Просто удалите «[‘Abc’ , ‘DEF’]» (двойные кавычки ) и сделайте это [‘ABC’ , ‘DEF’]

4. Вау отличный ответ, братан @sam2611