Python 从列表中的字符串中翻转项目
当我读入.txt文件时,如下所示:Python 从列表中的字符串中翻转项目,python,string,file,Python,String,File,当我读入.txt文件时,如下所示: with open("sample.txt") as f: content = f.readlines() for row in content: print(row) 我有以下意见: ['k'], ['m'] 我想将此转化为: [k, m] 所以我试着 with open("sample.txt") as f: content = f.readlines() for row in content: items = items.repla
with open("sample.txt") as f:
content = f.readlines()
for row in content:
print(row)
我有以下意见:
['k'], ['m']
我想将此转化为:
[k, m]
所以我试着
with open("sample.txt") as f:
content = f.readlines()
for row in content:
items = items.replace('\'', '') for item in items
row_analyze = ','.join(items)
然而,这给了我:
[,,k,,],,,[,,m,,],
关于我在这里做错了什么有什么想法吗?sting
['k'],['m']
,实际上代表一个列表元组,您只需使用ast.literal\u eval()
函数将其转换为python元组对象,然后使用itertools.chain()
函数链接列表:
In [1]: s = "['k'], ['m']"
In [2]: import ast
In [3]: ast.literal_eval(s)
Out[3]: (['k'], ['m'])
In [4]: from itertools import chain
In [6]: list(chain.from_iterable(ast.literal_eval(s)))
Out[6]: ['k', 'm']
您的
行
似乎是字符串“['k'],['m']”
。如果您想将其转换为“[k,m]”
,一些简单的replace
语句就足够了。首先,删除”
,但是,不要用将字符串中的字符连接到,
,而是将剩余的,[
替换为,
>>> row = "['k'], ['m']"
>>> row.replace("'", '')
'[k], [m]'
>>> row.replace("'", "").replace("], [", ", ")
'[k, m]'
文件中真正包含的数据是什么?items=items。items中的item替换('\'','')没有意义。您的意思是items=[item.replace('\'','')用于行中的item]
?再回过头来看,'sample.txt'
是从哪里来的?您可能可以避免使用这个中间文件,或者通过pickle
或json
模块将其正确存储为python对象,OP似乎希望像[k,m]
那样输出,而不使用