Python 在'中更改字符串;列表格式';一串

Python 在'中更改字符串;列表格式';一串,python,Python,我有以下清单 lst = ["['atama', 'karada', 'kami', 'kao', 'hitai', 'me', 'mayu', 'mabuta', 'matsuge', 'hana']", "['head', 'body', 'hair', 'face', 'forehead', 'eye', 'eyebrow', 'eyelid', 'eyelash', 'nose']"] 我需要将每个项目的内容设置为列表,以便可以单独打印项目。例如 for item in

我有以下清单

lst = ["['atama', 'karada', 'kami', 'kao', 'hitai', 'me', 'mayu', 'mabuta', 'matsuge', 'hana']", 
       "['head', 'body', 'hair', 'face', 'forehead', 'eye', 'eyebrow', 'eyelid', 'eyelash', 'nose']"]
我需要将每个项目的内容设置为列表,以便可以单独打印项目。例如

for item in lst:
    for word in list(item):
        print word

>>

atama
karada
kami
kao
etc.

你知道如何将str(item)再次格式化为列表吗?

我可以想出几种方法:

>>> import ast
>>> L = ["['atama', 'karada', 'kami', 'kao', 'hitai', 'me', 'mayu', 'mabuta', 'matsuge', 'hana']", 
       "['head', 'body', 'hair', 'face', 'forehead', 'eye', 'eyebrow', 'eyelid', 'eyelash', 'nose']"]
>>> for item in L:
        for word in ast.literal_eval(item):
            print word


atama
karada
kami
kao
hitai
me
mayu
mabuta
matsuge
hana
head
body
hair
face
forehead
eye
eyebrow
eyelid
eyelash
nose
1) 手动提取每个列表项:

lst = [[item.strip()[1:-1] for item in element[3:-3].split(',')] for element in lst]
2) 使用
eval

lst[:] = eval(lst[0]), eval(lst[1])
3) 使用
json

import json
lst = [json.loads(i) for i in lst]
首选方法1或3
eval
是不安全的,因为传递给
eval
的任何字符串都将被(意外、意外)计算。只有在完全控制传递给它的内容时,才使用
eval

4) 我遇到的另一个解决方案是使用正则表达式:

import re
lst = [re.findall("['\"](\w+)['\"]", item) for item in lst]

我可以想出几种方法:

1) 手动提取每个列表项:

lst = [[item.strip()[1:-1] for item in element[3:-3].split(',')] for element in lst]
2) 使用
eval

lst[:] = eval(lst[0]), eval(lst[1])
3) 使用
json

import json
lst = [json.loads(i) for i in lst]
首选方法1或3
eval
是不安全的,因为传递给
eval
的任何字符串都将被(意外、意外)计算。只有在完全控制传递给它的内容时,才使用
eval

4) 我遇到的另一个解决方案是使用正则表达式:

import re
lst = [re.findall("['\"](\w+)['\"]", item) for item in lst]

目标是只获取lst并创建一个包含lst中列表中所有项目的列表吗?很抱歉,不清楚,目标是创建包含列表中包含的字符串内容的列表(一、二)。。哇,我不擅长文字。目标是只使用lst并创建一个包含lst列表中所有项目的列表吗?很抱歉,不清楚,目标是创建包含列表中字符串内容的列表(一,二)。。哇,我不擅长文字。第一个选择效果很好:)唯一的一点是,我得到的字符串项目如下:“'karada':有没有办法防止“'”在每个后续项目的开始出现?谢谢:)马上!再次感谢您的帮助!:)第一个选项很有效:)唯一的问题是,我得到的字符串项如下:“'karada':有没有办法防止“'”在每个后续项的开头出现?谢谢:)马上!再次感谢您的帮助!:)