Python 在列表中搜索并总结
我有一个包含一系列值的列表。我首先试图找到里面有“MB”的项目,然后对这些值求和。例如,第一个“text:u'3MB”。我想得到这个项目,并总结的价值,在这种情况下,将是3,并做同样的下一个项目和“MB”内 代码(到目前为止): 我得到这个错误: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运算符检查该值是否包
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)