社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

schwobaseggl

schwobaseggl 最近创建的主题
schwobaseggl 最近回复了
5 年前
回复了 schwobaseggl 创建的主题 » python列表理解与计数

以下内容将在某种程度上干掉您的代码:

from collections import defaultdict

bounds = [10, 100, 500, 1000, 2000, 5000, 10000]
counts = defaultdict(int)

with open("result.txt", "rt") as f_i:
    for line in f_i:
        a, b = (int(float(token)) for token in line.split("-"))
        c = a-b
        if c < 0: 
            continue
        for bound in bounds:
            if c < bound:
                counts[bound] += 1
                break

with open("result.txt", "w") as f_o:
    lower = 0
    for bound in bounds:
        # f_o.write(f'in range {lower}-{bound} - {counts[bound]}\n')
        f_o.write('in range {}-{} - {}\n'.format(lower, bound, counts[bound]))
        lower = bound
6 年前
回复了 schwobaseggl 创建的主题 » python:对列表中具有相同符号的相邻数字求和

使用 itertools.groupby sum :

from itertools import groupby

ls = [5, -2, -2, 2, -4, -2 ,-2, 7, 3, 1]

[sum(g) for _, g in groupby(ls, key=lambda x: x < 0)]
# [5, -4, 2, -8, 11]
6 年前
回复了 schwobaseggl 创建的主题 » django在不下载和重新加载的情况下将远程文件分配给filefield

FileField 菲尔德只是个皮条客 CharField ,通常持久化路径(取决于存储)。找出上传文件的存储路径(例如,通过应用程序上传的其他文件)。可以使用值列表获取原始值:

Model.objects.filter(pk=known_instance.pk).values_list('file_field_name')

并直接为手动上载的文件设置:

instance.file_field_name = 'required/raw/value/for/resource'
instance.save()
6 年前
回复了 schwobaseggl 创建的主题 » python regex以匹配可选的双引号字符串

您可以使用以下模式。请注意,它基本上列出了这两种不同的情况,因为众所周知,括号不是规则的,而是上下文相关的,因此很难用正则表达式处理:

>>> p = re.compile(r'^(?:"[^"]+"|[^"]+)$')
>>> bool(p.match('"assets"'))
True
>>> bool(p.match('"assets'))
False
>>> bool(p.match('assets'))
True

这还假定在匹配的字符串之前或之后没有字符。

7 年前
回复了 schwobaseggl 创建的主题 » python increment运算符在一行条件语句中有奇怪的行为

运算符优先级

idcter += 1 if (idcter <= maxid) else 0

由以下分组可视化

idcter += (1 if (idcter <= maxid) else 0)

也就是说你 增量 0 如果条件不成立。

把它和

idcter = idcter + 1 if (idcter <= maxid) else 0
# ==
idcter = (idcter + 1) if (idcter <= maxid) else 0

你在哪里 分配 结果 在同样的情况下。

顺便说一句, 10000 已经超过你的 maxid 属于 9999 . 实现这种重置增量的一种典型方法是使用模运算符。在您的情况下:

idcter = (idcter+1) % (maxid+1)  # 9997 -> 9998 -> 9999 -> 0 -> 1