python - Python:计算每周的交通选择
问题描述
我有两个 dicts 可以跟踪我每周使用的交通工具类型:
transportation = {
'car':[1,0,0,0,0,0,1],
'walk':[0,1,0,1,0,0,0],
'bike':[0,1,1,0,1,0,0],
}
grains = {
'overall':['car','walk','bike'],
'environmentally_friendly':['walk','bike'],
}
我想汇总数据以计算过去一周使用交通工具的时间:
using_transportation = {
'overall': 6,
'environmentally_friendly': 4,
}
如果一周是周日到周六,overall
则为 6,因为我周五不使用交通工具。environmentally_friendly
是 4,因为星期一我步行和骑自行车(仅计为 1),然后在星期二 - 星期四步行或骑自行车。
这是我用来计算整体的,但不知道如何打破环境友好(不幸的是不能使用熊猫):
week = []
day = []
i = 0
while i <= 6:
for k,v in datelist.items():
day.append(v[i])
if 1 in day:
week.append(True)
else:
week.append(False)
day = []
i+=1
print(sum(week))
任何关于更好方法的建议都非常感谢!
解决方案
这是您可以解决问题的一种方法:
transportation = {
'car':[1,0,0,0,0,0,1],
'walk':[0,1,0,1,0,0,0],
'bike':[0,1,1,0,1,0,0],
}
grains = {
'overall':['car','walk','bike'],
'environmentally_friendly':['walk','bike'],
}
def save_the_planet(transportation, grains):
# Let't do the week plan (as a bonus)
def go(x, i): return [k for (k, v) in x.items() if v[i] == 1]
week = {
'monday': go(transportation, 0),
'tuesday': go(transportation, 1),
'wednesday': go(transportation, 2),
'thursday': go(transportation, 3),
'friday': go(transportation, 4),
'saturday': go(transportation, 5),
'sunday': go(transportation, 6),
}
# Now lets calculate
overall = transportation.keys()
not_eco = [x for x in overall if x not in grains['environmentally_friendly']]
not_eco = {k:v for k,v in week.items() if any([x in v for x in not_eco])}
eco_week = {k:v for k,v in week.items() if k not in not_eco.keys()}
# Then le'ts reveal the answer
return {
'overall': len([x for x in week.values() if x]),
'environmentally_friendly': len([x for x in eco_week.values() if x]),
}
print(save_the_planet(transportation, grains))
您可能可以对其进行一些优化
推荐阅读
- php - 如何通过 php 将图像从一个表保存到另一个表中?
- python - 绘制风向
- python - 初学者:Python 3.66。赢7。如何忽略此代码中的子文件夹?
- qt - Qt - 如何从同一文件中的另一个函数获取变量值
- javascript - Axios 使用 vuejs cli 获取 php 文件不起作用
- r - 在 R 中使用 dpois 函数构建预测模型
- angular - 获取角度页面中的绑定总数
- java - 春天:PESSIMISTIC_READ/WRITE 不工作
- c - 奇怪的 Clang 行为。简单的片段给出了错误的结果
- python-3.x - 在轴值中添加辅助描述,情节