Ton*_*Ito 7 python list python-2.7
我有这样的清单
['MGM', '1'], ['MGD', '1'], ['V1', '[0,2,0,1]'], ['AuD', '[0,0,0,1]']
Run Code Online (Sandbox Code Playgroud)
在python中.我想找到像这样的字符串列表的总和:
['MGM', '1'], ['MGD', '1'], ['V1', '3'], ['AuD', '1']
Run Code Online (Sandbox Code Playgroud)
我应该先将它们转换为列表中的列表吗?如果是这样我将如何解决这个问题?
尽力学习如何编写科学代码.
鉴于:
s = [['MGM', '1'], ['MGD', '1'], ['V1', '[0,2,0,1]'], ['AuD', '[0,0,0,1]']]
Run Code Online (Sandbox Code Playgroud)
以下将第二个项目转换为Python对象:
import ast
for sublist in s:
sublist[1] = ast.literal_eval(sublist[1])
Run Code Online (Sandbox Code Playgroud)
结果:
[['MGM', 1], ['MGD', 1], ['V1', [0, 2, 0, 1]], ['AuD', [0, 0, 0, 1]]]
Run Code Online (Sandbox Code Playgroud)
然后通过特殊处理列表将它们转换回来:
for sublist in s:
if isinstance(sublist[1],list):
sublist[1] = sum(sublist[1])
sublist[1] = str(sublist[1])
Run Code Online (Sandbox Code Playgroud)
结果:
[['MGM', '1'], ['MGD', '1'], ['V1', '3'], ['AuD', '1']]
Run Code Online (Sandbox Code Playgroud)