Python 在列表中搜索并总结

Python 在列表中搜索并总结,python,list,sum,Python,List,Sum,我有一个包含一系列值的列表。我首先试图找到里面有“MB”的项目,然后对这些值求和。例如,第一个“text:u'3MB”。我想得到这个项目,并总结的价值,在这种情况下,将是3,并做同样的下一个项目和“MB”内 代码(到目前为止): 我得到这个错误: if "MB" in item: TypeError: argument of type 'Cell' is not iterable 列表(包含): 您的liste列表包含的Excel本身不是字符串,因此您不能使用in运算符检查该值是否包

我有一个包含一系列值的列表。我首先试图找到里面有“MB”的项目,然后对这些值求和。例如,第一个“text:u'3MB”。我想得到这个项目,并总结的价值,在这种情况下,将是3,并做同样的下一个项目和“MB”内

代码(到目前为止):

我得到这个错误:

     if "MB" in item:
TypeError: argument of type 'Cell' is not iterable
列表(包含):


您的
liste
列表包含的Excel本身不是字符串,因此您不能使用
in
运算符检查该值是否包含某些字符串。您需要使用
value
属性访问字符串值,但只能对文本单元格执行此操作,否则,
value
将属于不同的类型:

for cell in liste:
    if cell.ctype == 1 and 'MB' in cell.value:
        print cell.value
然后,为了从字符串中获取数字值,您需要提取数字,例如通过删除
MB

totalMegaBytes = 0
for cell in liste:
    if cell.ctype == 1 and 'MB' in cell.value:
        totalMegaBytes += int(cell.value.replace('MB', ''))

print(totalMegaBytes)

liste
的内容无效语法在这种情况下,请省略
int(value)
,否则您将截断该值(例如
23kb
的值为
0.023
并且
int()
的值为零)。
for cell in liste:
    if cell.ctype == 1 and 'MB' in cell.value:
        print cell.value
totalMegaBytes = 0
for cell in liste:
    if cell.ctype == 1 and 'MB' in cell.value:
        totalMegaBytes += int(cell.value.replace('MB', ''))

print(totalMegaBytes)