小编Eri*_*Red的帖子

Python - 按月分组日期

这是一个快速的问题,我起初认为这很容易.一个小时,我不太确定!
所以,我有一个Python datetime对象列表,我想绘制它们.x值是年和月,y值是此列表中本月发生的日期对象的数量.
也许一个例子会更好地证明这一点(dd/mm/yyyy):

[28/02/2018, 01/03/2018, 16/03/2018, 17/05/2018] 
-> ([02/2018, 03/2018, 04/2018, 05/2018], [1, 2, 0, 1])
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试尝试按日期和年份分组,方法如下:

import itertools
group = itertools.groupby(dates, lambda date: date.strftime("%b/%Y"))
graph = zip(*[(k, len(list(v)) for k, v in group]) # format the data for graphing
Run Code Online (Sandbox Code Playgroud)

正如您可能已经注意到的那样,这只会按列表中已存在的日期进行分组.在我上面的例子中,4月份没有发生日期的事实会被忽视.

接下来,我尝试查找开始日期和结束日期,并在它们之间循环:

import datetime
data = [[], [],]
for year in range(min_date.year, max_date.year):
    for month in range(min_date.month, max_date.month):
        k = datetime.datetime(year=year, month=month, day=1).strftime("%b/%Y")
        v = sum([1 for date in dates if date.strftime("%b/%Y") == k])
        data[0].append(k)
        data[1].append(v)
Run Code Online (Sandbox Code Playgroud)

当然,这只有在min_date.month …

python datetime python-itertools

4
推荐指数
1
解决办法
1826
查看次数

tkinter - 将keypress事件绑定到标签

如果我想将一个按键事件绑定到Label以更改其文本,我的第一反应是将按钮绑定到标签,该标签将标签颜色为蓝色,并将按键绑定到标签.
在它最基本的,它看起来像这样:

from tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()

def prep(event):
    event.widget.config(bg='light blue')
    event.widget.bind('<Key>', edit)

def edit(event):
    print(event.char)

example = Label(frame, text='Click me')
example.pack()
example.bind('<Button-1>', prep)
mainloop()
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,按钮事件工作正常,为标签着色,但之后的按键没有做任何事情.更换event.widget的bindbind_all在技术上解决这个问题,但显然这是不切实际的.
多谢你们

python events tkinter

2
推荐指数
1
解决办法
4558
查看次数

标签 统计

python ×2

datetime ×1

events ×1

python-itertools ×1

tkinter ×1