比方說,我有一個下雨日期的日期列表。如何確定列表中最頻繁的月份?
rained=["01-05-2012","05-01-2012","01-12-2012","06-14-2013"]
日期的順序是月份,日期,年份。從列表中可以看出,在這些日期中,1月份(01)的降雨量最大。我將如何能夠爲此創建一個代碼?
比方說,我有一個下雨日期的日期列表。如何確定列表中最頻繁的月份?
rained=["01-05-2012","05-01-2012","01-12-2012","06-14-2013"]
日期的順序是月份,日期,年份。從列表中可以看出,在這些日期中,1月份(01)的降雨量最大。我將如何能夠爲此創建一個代碼?
使用split()函數通過符號' - '拆分列表中的每個項目,然後分析您可以得到答案的月份。
假設我從'months_rained = [1,5,1,6]'開始,如何分析? (這個問題應該刷新出來,也許用一些演示代碼。) – user2864740
做一個字典,關鍵是月,價值是下雨的時間,迭代monthRaines然後得到最大的價值,關鍵是回答 –
@ user2864740,那更容易。只要使用'計數器(months_rained)' –
使用collections.Counter
:
>>> rained=["01-05-2012","05-01-2012","01-12-2012","06-14-2013"]
>>> from collections import Counter
>>> Counter(x[:2] for x in rained).most_common()[0][0]
'01'
most_common()
將返回該項目的元組的列表,按降序計數:
>>> Counter(x[:2] for x in rained).most_common()
[('01', 2), ('06', 1), ('05', 1)]
我想你可以使用'x [:2]',因爲如果月份不是全部填充爲0,結果無論如何都是無稽之談 –
好點,謝謝@gnibbler。更新。 –
如果出現平局,你可以這樣做像這樣
>>> rained=["01-05-2012", "05-01-2012", "01-12-2012", "06-14-2013"]
>>> from collections import Counter
>>> counts = Counter(x[:2] for x in rained).most_common()
>>> [i for i, j in counts if j==counts[0][1]]
['01']
下面是一個帶領帶的例子
>>> rained=["01-05-2012", "05-01-2012", "01-12-2012", "06-14-2013", "06-12-2013"]
>>> counts = Counter(x[:2] for x in rained).most_common()
>>> [i for i, j in counts if j==counts[0][1]]
['01', '06']
在哪個基礎上,你可以說「它在一月(01)下雨最多」? – Nilesh
@NileshG該列表大概(只)包含下雨的日子。 – user2864740
因爲big-endian或little-endian日期不夠選擇 –