python - 在 Python 中将字符串解析为整数时出现问题
问题描述
sales
我需要使用一个名为输入数据的多行字符串来显示一周内每个销售人员的总销售额。我已经能够成功地返回一个名为 的字典dic
,但是销售数字仍然是字符串,并且我无法为每个销售人员将它们总计,因为当我使用这样的int()
方法解析它们时int(i.split(";")[-1])
,它会引发错误。
另外作为旁注,有谁知道为什么我不能从输入中得到星期几(i.split(";")[1])
?谢谢!
电流输出:
{'': '', 'Lauren': '91', 'Tim': '83'}
期望的输出
{'Lauren': 10, 'Tim': 11}
我当前的代码:
sales = '''
Lauren;Tuesday;9
Tim;Wednesday;8
Tim;Thursday;3
Lauren;Friday;1
'''
def salesCalc(sales):
dic = {}
for i in sales.splitlines():
if i.split(";")[0] in dic:
dic[i.split(";")[0]] += i.split(";")[-1]
else:
dic[i.split(";")[0]] = i.split(";")[-1]
return dic
print(salesCalc(sales))
解决方案
您当前的脚本有两个问题。首先,样本sales
输入应该从第一行的数据开始。您以空行开头的版本导致您的循环将空字符串作为第一个键/值。其次,您需要用 , 包装RHS
字典以int()
使用实际数字。正如您之前所做的那样,您正在执行字符串连接。把这两个放在一起:
sales = '''Lauren;Tuesday;9
Tim;Wednesday;8
Tim;Thursday;3
Laurent;Friday;1
'''
def salesCalc(sales):
dic = {}
for i in sales.splitlines():
if i.split(";")[0] in dic:
dic[i.split(";")[0]] += int(i.split(";")[-1])
else:
dic[i.split(";")[0]] = int(i.split(";")[-1])
return dic
print(salesCalc(sales)) # {'Tim': 11, 'Lauren': 9, 'Laurent': 1}
推荐阅读
- android - Flutter Smart Refresher 加载完成后不隐藏
- javascript - 是否可以使用 next.js 将动态道具从一个页面传递到另一个页面?
- vue.js - Vue 通过 props 存储的值不是反应式的
- python - 我正在尝试使用 Google Drive API 获取文件的直接下载链接
- c++ - 调用复制函数时访问冲突
- regex - 如何使用正则表达式拦截带有路径变量的 URL?
- python - 如何在 Django 中解决 NoReverseMatch
- casting - 使用 INet 在 Omnet++ 上检查和投射错误
- node.js - 无法连接到 SQLExpress ussign node.js
- php - 初学者坚持使用 wordpress custimize