python - 根据 Python 中的月份列表制作列表

标签 python list for-loop count append

我正在使用 Python 来制作列表。应该很容易!我不知道为什么我为此苦苦挣扎。

我有一些按日期统计的数据。有这样一个日期列:

Created on
5/1/2015
5/1/2015
6/1/2015
6/1/2015
7/1/2015
8/1/2015
8/1/2015
8/1/2015

在这种情况下,5 月将创建 2 个单元,6 月将创建 2 个单元,7 月将创建 1 个单元,8 月将创建 3 个单元。

我想在 4 月开始的列表中反射(reflect)这一点([4 月算,5 月算,6 月算,等等...]):

NumberofUnits = [0, 2, 3, 1, 3, 0, 0, 0, 0, 0, 0, 0]  

我有一个不错的月份列表

monthnumbers

Out[69]: [8, 5, 6, 7]

我还有一个包含 unitcounts = [2, 3, 1, 3] 的列表,我使用 value_counts 得到了它。

所以这是制作一个零列表并用 unitcount 列表替换部分的问题,对吧?

出于某种原因,我所有的尝试要么没有列出 list ,要么没有列出其中有一个零的 list 。

NumberofUnits = [0]*12

for i in range(0,len(monthnumbers)):
    if  **monthnumbers[i] == (i+4):** **This part is wrong**       
        NumberofUnits.append(unitcounts[i])
        s = slice(0,i+1)

我也试过

NumberofUnits = []
for i in range(0, 12):
    if len(NumberofUnits) > i:
        unitcounts[i:]+unitcounts[:i]
        NumberofUnits.append(unitcounts[i])
        s = slice(0,i+1)
    else:
        unitcounts.append(0)

但这并没有说明在这一轮中我的数据是从五月开始的,所以我需要在第一个槽中有一个零。

最佳答案

如果数据来自文件或任何可迭代对象,您可以使用 OrderedDict,从 4/april 开始按顺序创建键,然后递增计数每个月你都会遇到 finally 在末尾打印值列表,这些值将按要求的顺序排列:

from collections import OrderedDict

od = OrderedDict((i % 12 or 12, 0) for i in range(4, 16))
# -> OrderedDict([(4, 0), (5, 0), (6, 0), (7, 0), (8, 0), (9, 0), (10, 0), (11, 0), (12, 0), (1, 0), (2, 0), (3, 0)])

with open("in.txt") as f:
    for line in f:
        mn = int(line.split("/",1)[0])
        od.setdefault(mn, 0)
        od[mn] += 1

print(list(od.values()))
[0, 2, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0]

除非您执行上述逻辑,在实际解析数据时关联数据,否则要弄清楚哪个月的计数会困难得多。直接创建关联是一种简单得多的方法。

如果你有一个列表、元组等值的逻辑是完全相同的:

 for dte in list_of_dates:
        mn = int(dte.split("/",1)[0])
        od.setdefault(mn, 0)
        od[mn] += 1

关于python - 根据 Python 中的月份列表制作列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32078850/

相关文章:

python - 如何将 python 时间戳字符串转换为纪元?

Java For循环使用单个变量迭代100 64 36 16 4 0 4 16 36 64 100

java - For循环前进两个数字而不是一个

python - 尝试 For Loop 列表并 append 到新列表,但它在第一项之后返回

python - Python 中的 unicode 类

python - 如何使用项目名称中有冒号的属性

python - 如何在 python 3 中获取小数列表

c++ - 我需要帮助思考在 C 中实现 C++ 样式链表的不同方法

python - 谁能解释这个索引超出范围错误的根源?

python - Instagram Api 请求被系统拒绝