如何在lis中求一个字符串的和

2024-09-29 19:36:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张这样的单子

['MGM', '1'], ['MGD', '1'], ['V1', '[0,2,0,1]'], ['AuD', '[0,0,0,1]']

在python中。我想找出如下字符串的列表之和:

^{pr2}$

我应该先把它们转换成列表中的列表吗?如果是这样,我该怎么办?在

我正在努力学习如何为科学编写代码。在


Tags: 字符串代码列表科学单子v1audpr2
3条回答

给予:

s = [['MGM', '1'], ['MGD', '1'], ['V1', '[0,2,0,1]'], ['AuD', '[0,0,0,1]']]

下面将把第二个项目转换为Python对象:

^{pr2}$

结果:

^{3}$

然后通过对列表的特殊处理将它们转换回来:

for sublist in s:
    if isinstance(sublist[1],list):
        sublist[1] = sum(sublist[1])
    sublist[1] = str(sublist[1])

结果:

[['MGM', '1'], ['MGD', '1'], ['V1', '3'], ['AuD', '1']]
>>> s = [['MGM', '1'], ['MGD', '1'], ['V1', '[0,2,0,1]'], ['AuD', '[0,0,0,1]']]

由于您的数据是一个灾难,我们将使用一个helper函数求和

^{pr2}$

可以使用JSON或literal_eval来解码字符串

^{3}$

这应该是你想要的。注释中有解释。

import ast

# Create the list
myList = [['MGM', '1'], ['MGD', '1'], ['V1', '[0,2,0,1]'], ['AuD', '[0,0,0,1]']]

# Loop through each sublist
for num in myList:
    # try to convert the string to a list and sum it
    try:
        # This works by evaluating the string into a list object
        # Then summing the numbers in the list
        # then turning that number back into a string so it's like the rest
        num[1] = str(sum(ast.literal_eval(num[1])))
    # If it fails, it must just be a number, so ignore
    except TypeError:
        pass

print myList

相关问题 更多 >

    热门问题