我的问题是,我必须编写一个函数来检查包含数字和字符串的列表,从每个字符串中提取数字,然后将数字相加
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()的文本无效:“”
这将帮助你得到你想要的
在这里,我们首先遍历列表和列表中每个单词的所有字符以构建列表
res
。该列表存储从相应单词生成的数字。 例如,如果l[1] = "1h2e3y"
,那么res[1]
将等于123 最后,我们只返回列表res的和,通过return sum(res)
相关问题 更多 >
编程相关推荐