检查列表中字符串的整数并添加它们

2024-10-01 07:15:14 发布

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

我的问题是,我必须编写一个函数来检查包含数字和字符串的列表,从每个字符串中提取数字,然后将数字相加

my_list = ['0852eqh', '2245y4ng5b7y1223a8', 'r05o1gubbb58ay7n1', '7o2', '59owo7o23sb0795gl', 'h1v0961676mt', '1586z18c4p15', '06lx98371xf266g', '77zx50b4', 't983', '5kk6oa3m899oz6w', '3r6920ay486165', '739n1d4', '09m6056w0wa883', '32b5o4l91l9f5', '586qc77ef9b2a22rprh5', 'wsekkq7k', '59s38u54hbt', 'v04mqgq06n216bo', 'zjc', '2967187o', '2o75bz705u641d1tind', 'e8ett1k00qia', '8c16n03k6993936cymwg', '0711m5g6y', '65bu39zsbkm8', '504iv1nr7g7y9', '778538pe0cfikk', 'nr2v267qxvvhsp92395i', '3guc0ey94j7ivh314ye0']

例如,第一个字符串将给我852,第二个字符串将224545712238,然后得到所有提取的数字的总和,并将它们添加到列表中

这就是我到目前为止所做的:

def check(list):
    res = [ ]
    i = 0
    for (i) in (list):
        if i .isdigit():
            (res.append(i))
    print (res)

编辑 所以我试了一下:

def check(list):
res = []
for word in list:
    s = ''
    for char in word:
        if char.isdigit():
            s += char
    res.append(int(s))
return sum(res)

列表=['0852eqh','2245y4ng5b7y1223a8','r05o1gubbb58ay7n1','7o2','59owo7o23sb0795gl','h1v0961676mt',', ‘1586z18c4p15’、‘06lx98371xf266g’、‘77zx50b4’、‘t983’、‘5K6OA3M899OZ6W’、‘3r6920ay486165’、‘739n1d4’, ‘09m6056w0wa883’、‘32b5o4l91l9f5’、‘586qc77ef9b2a22rprh5’、‘WSEKQ7K’、‘59s38u54hbt’、‘v04mqgq06n216bo’, ‘zjc’、‘2967187o’、‘2O75BZ705U641D1IND’、‘e8ett1k00qia’、‘8C16N03K69936CYMWG’、‘0711m5g6y’, ‘65bu39zsbkm8’、‘504iv1nr7g7y9’、‘778538pe0cfikk’、‘nr2v267qxvvhsp92395i’、‘3guc0ey94j7ivh314ye0’]

打印(检查(列表))

现在我得到了这个错误:

Traceback (most recent call last):

文件“C:/Users/n-soze/PycharmProjects/pythonProject1/checkdig.py”,第20行,在 打印(检查(列表)) 文件“C:/Users/n-soze/PycharmProjects/pythonProject1/checkdig.py”,第8行,检查 res.append(int(s)) ValueError:基数为10的int()的文本无效:“”


Tags: 字符串in列表forres数字listint
1条回答
网友
1楼 · 发布于 2024-10-01 07:15:14

这将帮助你得到你想要的

def check(l) :
res = []
for word in l :
    s = ""
    for character in word :
        if character.isdigit() :
            s += character
    if s == '':     #to handle case when no number is found in the string
        s='0'
    res.append(int(s))
return sum(res)
 

l = ["hey11" , ",12","how13","a1r4e","1you5"]
print(check(l))

在这里,我们首先遍历列表和列表中每个单词的所有字符以构建列表res。该列表存储从相应单词生成的数字。 例如,如果l[1] = "1h2e3y",那么res[1]将等于123 最后,我们只返回列表res的和,通过return sum(res)

相关问题 更多 >