is大龙个人页面-阿里云开发者社区

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:
  • Python
    初级

    能力说明:

    了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。

    获取记录:

    • 2020-04-10大学考试 大学/社区-用户参加考试
    • 2020-04-10大学考试 Python初级能力 大学/社区用户通过技能测试
    • 2019-08-30大学考试 大学/社区-用户参加考试
云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 高分内容
  • 最新动态
  • 文章
  • 问答
  • 提交了问题 2020-03-23

    需要帮助处理python 2.7和python 3上的beautifulsoup错误

正在加载, 请稍后...
暂无更多信息

2020年03月

  • 03.25 12:54:54
    回答了问题 2020-03-25 12:54:54

    Pandas:一对多加入+剩余价值余额新行:带发票的拆分合同

    请尝试这样:

    df.groupby(['shift'])
    .count()['count']
    .plot(kind='bar')
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:25:31
    回答了问题 2020-03-25 09:25:31

    如何存储中间递归结果

    您可以使用Tail递归访问中间递归结果。从在讨论给出的例子,假设您正在计算总和第一个``ň数字:

    function tailrecsum(x, running_total = 0) {
        if (x === 0) {
            return running_total;
        } else {
            return tailrecsum(x - 1, running_total + x);
        }
    }
    

    此处,将running_total传递给每个调用,因此您可以通过访问此变量来访问中间递归调用:

    tailrecsum(5, 0)
    tailrecsum(4, 5)
    tailrecsum(3, 9)
    tailrecsum(2, 12)
    tailrecsum(1, 14)
    tailrecsum(0, 15)
    # Returns 15
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:25:24
    提交了问题 2020-03-25 09:25:24

    如何存储中间递归结果

  • 03.25 09:25:08
    回答了问题 2020-03-25 09:25:08

    根据行中阈值获取前'n'列的名称

    想法是首先通过丢失DataFrame.where中的值来替换不匹配的值,然后使用numpy.argsort应用解决方案。根据numpy.where中的count个不丢失的值按True的数量进行过滤,以将不匹配的值替换为空字符串。

    最后是将值加入列表推导中,并过滤掉缺少值的不匹配行:

    df1 = df.iloc[:, 1:]
    
    m = df1 > 80
    count = m.sum(axis=1)
    arr = df1.columns.values[np.argsort(-df1.where(m), axis=1)]
    
    m = np.arange(arr.shape[1]) < count[:, None]
    a = np.where(m, arr, '')
    
    L = [', '.join(x).strip(', ') for x in a]
    df['Top_3_above_80'] = pd.Series(L, index=df.index)[count > 0]
    print (df)
      Student_Name  Maths  Physics  Chemistry  Biology  English  \
    0     John Doe     90       87         81       65       70   
    1     Jane Doe     82       84         75       73       77   
    2     Mary Lim     40       65         55       60       70   
    3     Lisa Ray     55       52         77       62       90   
    
                  Top_3_above_80  
    0  Maths, Physics, Chemistry  
    1             Physics, Maths  
    2                        NaN  
    3                    English  
    

    如果性能不重要,则每行使用Series.nlargest,但是如果使用大的DataFrame的话,它的确很慢:

    df1 = df.iloc[:, 1:]
    m = df1 > 80
    count = m.sum(axis=1)
    
    df['Top_3_above_80'] = (df1.where(m)
                               .apply(lambda x: ', '.join(x.nlargest(3).index), axis=1)[count > 0])
    print (df)
      Student_Name  Maths  Physics  Chemistry  Biology  English  \
    0     John Doe     90       87         81       65       70   
    1     Jane Doe     82       84         75       73       77   
    2     Mary Lim     40       65         55       60       70   
    3     Lisa Ray     55       52         77       62       90   
    
                  Top_3_above_80  
    0  Maths, Physics, Chemistry  
    1             Physics, Maths  
    2                        NaN  
    3                    English  
    

    性能

    #4k rows
    df = pd.concat([df] * 1000, ignore_index=True)
    #print (df)
    
    def f1(df):
        df1 = df.iloc[:, 1:]
        m = df1 > 80
        count = m.sum(axis=1)
        arr = df1.columns.values[np.argsort(-df1.where(m), axis=1)]
    
        m = np.arange(arr.shape[1]) < count[:, None]
        a = np.where(m, arr, '')
    
        L = [', '.join(x).strip(', ') for x in a]
        df['Top_3_above_80'] = pd.Series(L, index=df.index)[count > 0]
        return df
    
    def f2(df):
        df1 = df.iloc[:, 1:]
        m = df1 > 80
        count = m.sum(axis=1)
    
        df['Top_3_above_80'] = (df1.where(m).apply(lambda x: ', '.join(x.nlargest(3).index), axis=1)[count > 0])
        return df
    
    In [210]: %timeit (f1(df.copy()))
    19.3 ms ± 272 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
    
    In [211]: %timeit (f2(df.copy()))
    2.43 s ± 61.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:25:01
    提交了问题 2020-03-25 09:25:01

    根据行中阈值获取前'n'列的名称

  • 03.25 09:24:44
    回答了问题 2020-03-25 09:24:44

    清理数学符号或将int值转换为0或1

    没有函数,强制转换或条件但具有 比较的另一种方式:

    d = some_int_value * (x > 0)
    

    但是,就可读性而言,三元... if ... else ...应该更可取。

    *如果您希望使用纯数学方法,则可以使用1-0 x的幂运算,因为只有当 x == 0和0时,0 * x才是1 。但是,这是否以任何方式清楚是另一个问题。(还要注意,这为x <0除以零,但是您说您没有这些。) >>> x = 5 >>> 1 - 0*x 1 >>> x = 0 >>> 1 - 0*x 0

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:24:38
    提交了问题 2020-03-25 09:24:38

    清理数学符号或将int值转换为0或1

  • 03.25 09:24:23
    回答了问题 2020-03-25 09:24:23

    如何在Flask-Admin中禁用导航栏?

    Flask-Admin Github存储库中有一个自定义布局的示例,即“自定义布局”。

    在您的特定情况下,您需要删除`

    基本布局模板文件的{{%block page_body%}`Jinja2块中的html部分。

    在项目的templates / admin目录中创建一个menuless-layout.html文件,该文件扩展了内置的基本布局。复制并粘贴{%block page_body%} {%endblock%}块并删除`

    `部分。

    {% import 'admin/layout.html' as layout with context -%}
    {% extends 'admin/base.html' %}
    
    {% block page_body %}
      <div class="container{%if config.get('FLASK_ADMIN_FLUID_LAYOUT', False) %}-fluid{% endif %}">
    
        <!-- Nav section removed -->
    
        {% block messages %}
        {{ layout.messages() }}
        {% endblock %}
    
        {# store the jinja2 context for form_rules rendering logic #}
        {% set render_ctx = h.resolve_ctx() %}
    
        {% block body %}{% endblock %}
      </div>
    {% endblock %}
    

    然后指示Flask-Admin使用此模板作为基本布局:

    # Create admin with custom base template
    admin = admin.Admin(app, 'Example', base_template='admin/menuless-layout.html', template_mode='bootstrap3')
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:24:16
    提交了问题 2020-03-25 09:24:16

    如何在Flask-Admin中禁用导航栏?

  • 03.25 09:24:02
    回答了问题 2020-03-25 09:24:02

    在没有自联接表的情况下将单个列与多个值匹配

    好像

    SELECT routing_id
    FROM ec.production_autoroutingtag
    WHERE (tag_type, tag_value) IN (('mounting_type', 'smd'),
                                    ('x_ray', 'true'),
                                    ('depaneling', 'false'))
    GROUP BY routing_id
    HAVING COUNT(DISTINCT tag_type, tag_value) = 3
    
    • 更新

    如果您需要使用非等值条件来检查值,那么必须结合使用OR将条件分别检查每对(标记,值):

    SELECT routing_id,
           COUNT( tag_type) 
    FROM ec.production_autoroutingtag 
    WHERE (tag_type, tag_value) IN (('mounting_type','qfn'), ('panel_qty','1')) 
       OR (tag_type = 'bom' and tag_value >= '10')
       OR (tag_type = 'cpl' and tag_value >= '158')
    GROUP BY routing_id 
    HAVING COUNT(tag_type) = 4; 
    

    注意-比较“大于或等于”将按STRINGS进行(即“ 5”将为TRUE)!如果需要比较为数字,则必须对字段值使用正确的类型转换,对引用值使用正确的数据类型:

    SELECT routing_id,
           COUNT( tag_type) 
    FROM ec.production_autoroutingtag 
    WHERE (tag_type, tag_value) IN (('mounting_type','qfn'), ('panel_qty','1')) 
       OR (tag_type = 'bom' and tag_value + 0 >= 10)
       OR (tag_type = 'cpl' and tag_value + 0 >= 158)
    GROUP BY routing_id 
    HAVING COUNT(tag_type) = 4; 
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:23:54
    提交了问题 2020-03-25 09:23:54

    在没有自联接表的情况下将单个列与多个值匹配

  • 03.25 09:22:55
    回答了问题 2020-03-25 09:22:55

    如何在python中找到列表数组的最小点

    无需对所有最小值进行排序,您可以获取最低的对:

    def get_minima(array):
        sdiff = np.diff(np.sign(np.diff(array)))
        rising_1 = (sdiff == 2) 
        rising_2 = (sdiff[:-1] == 1) & (sdiff[1:] == 1) 
        rising_all = rising_1 
        rising_all[1:] = rising_all[1:] | rising_2 
        min_ind = np.where(rising_all)[0] + 1 
        minima = list(zip(min_ind, array[min_ind]))
        return min(minima, key=lambda pair: pair[1])
    

    例如:

    minima = [(59, 7.958373616052042e-10),
     (69, 6.5364637051479655e-09),
     (105, 1.0748381102806489e-08),
     (88, 2.953895857338913e-07),
     (27, 9.083111768048306e-07)]
    
    minimum = min(minima, key=lambda pair: pair[1])
    print(minimum)
    
    >>> (59, 7.958373616052042e-10)
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:22:47
    提交了问题 2020-03-25 09:22:47

    如何在python中找到列表数组的最小点

  • 03.25 09:22:30
    回答了问题 2020-03-25 09:22:30

    如何在Pyqt5中使用按钮生成一个圆

    通常的方法如果要在窗口小部件上绘制额外的形状,则是要覆盖paintEvent,创建一个QPainter对象,然后使用此painter绘制所需的形状。在您的情况下,由于您只想在某些情况下绘制圆,因此可以使用一个标志来指示是否应绘制该圆,并且仅当此标志为True时,才在`paintEvent'中绘制该圆。

    class Window(QMainWindow):
        def __init__(self):
            ....
            self.should_paint_circle = False
    
        def paintEvent(self, event):
            super().paintEvent(event)
            if self.should_paint_circle:
                painter = QtGui.QPainter(self)
                painter.setRenderHint(QPainter.Antialiasing)
                painter.setPen(QPen(Qt.black, 5, Qt.SolidLine))
                painter.drawEllipse(100, 100, 100, 100)
    
        def paintcircle(self):
            self.should_paint_circle = True
            self.update()
    

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:22:23
    提交了问题 2020-03-25 09:22:23

    如何在Pyqt5中使用按钮生成一个圆

  • 03.25 09:22:05
    回答了问题 2020-03-25 09:22:05

    修改包含Python3中的集合的集合列表

    因此,可以肯定的是,一旦我发布了这个问题,我就已经接近答案了,但是我没有意识到我已经接近了答案。使用额外的元组解决此问题的方法是:

    import itertools
    first_range = zip((10\*exp for exp in range(7)),(10\*exp for exp in range(1,8)))
    second_range = zip((5\*0\*exp if exp != 1 else 10\*2 for exp in range(1,8)),(5\*0\*exp for exp in range(2,9)))
    iterator_of_tuples = itertools.product(first_range,second_range)
    
    # the next line solves my issue
    final_list = [x + y for x, y in iterator_of_tuples]
    

    我所做的只是一个简单的元组合并:如何在Python中合并两个元组?。不知道为什么我以前没想到

    编辑:根据ShadowRanger的输入更新了答案

    回答来源:stackoverflow

    踩0 评论0
  • 03.25 09:21:57
    提交了问题 2020-03-25 09:21:57

    修改包含Python3中的集合的集合列表

  • 03.25 09:21:42
    回答了问题 2020-03-25 09:21:42

    Python If语句返回ValueError

    这样的答案也很好地解释了,谢谢@MisterMiyagi

    问题是,当您认为已将其过滤掉时,似乎出现了x ['Min']`的一些意外值。实际上,您的布尔值之一具有误导性:

    if x['Min'] != "" or "ARR" or "BRD":
    

    这只是检查x ['Min']!=“”。实际上,或“ ARR”不会做任何事情,因为布尔bool(“ ARR”)始终为True!同样适用于或“ BRD”,这解释了为什么最终在循环中最终将BRD值转换为整数的原因。如果将x ['Min']替换为您要跳过的值,请参见以下内容:

    >>> xmin = "BRD"
    >>> xmin != "" or "ARR" or "BRD"
    True
    

    当你想要错误!

    如果您想说x ['Min']不能为“”“或ARR或BRD`,则可以使用以下代码:

    if x['Min'] not in ["", "ARR", "BRD"]:
    

    要么

    if x['Min'] and x['Min'] not in ["ARR", "BRD"]:
    

    证明:

    >>> xmin = "BRD"
    >>> xmin not in ["", "ARR", "BRD"]
    False
    

    回答来源:stackoverflow

    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2020-03-25

    Pandas:一对多加入+剩余价值余额新行:带发票的拆分合同

    请尝试这样:

    df.groupby(['shift'])
    .count()['count']
    .plot(kind='bar')
    

    回答来源:stackoverflow

    踩0 评论0
  • 回答了问题 2020-03-25

    如何存储中间递归结果

    您可以使用Tail递归访问中间递归结果。从在讨论给出的例子,假设您正在计算总和第一个``ň数字:

    function tailrecsum(x, running_total = 0) {
        if (x === 0) {
            return running_total;
        } else {
            return tailrecsum(x - 1, running_total + x);
        }
    }
    

    此处,将running_total传递给每个调用,因此您可以通过访问此变量来访问中间递归调用:

    tailrecsum(5, 0)
    tailrecsum(4, 5)
    tailrecsum(3, 9)
    tailrecsum(2, 12)
    tailrecsum(1, 14)
    tailrecsum(0, 15)
    # Returns 15
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    如何存储中间递归结果

  • 回答了问题 2020-03-25

    根据行中阈值获取前'n'列的名称

    想法是首先通过丢失DataFrame.where中的值来替换不匹配的值,然后使用numpy.argsort应用解决方案。根据numpy.where中的count个不丢失的值按True的数量进行过滤,以将不匹配的值替换为空字符串。

    最后是将值加入列表推导中,并过滤掉缺少值的不匹配行:

    df1 = df.iloc[:, 1:]
    
    m = df1 > 80
    count = m.sum(axis=1)
    arr = df1.columns.values[np.argsort(-df1.where(m), axis=1)]
    
    m = np.arange(arr.shape[1]) < count[:, None]
    a = np.where(m, arr, '')
    
    L = [', '.join(x).strip(', ') for x in a]
    df['Top_3_above_80'] = pd.Series(L, index=df.index)[count > 0]
    print (df)
      Student_Name  Maths  Physics  Chemistry  Biology  English  \
    0     John Doe     90       87         81       65       70   
    1     Jane Doe     82       84         75       73       77   
    2     Mary Lim     40       65         55       60       70   
    3     Lisa Ray     55       52         77       62       90   
    
                  Top_3_above_80  
    0  Maths, Physics, Chemistry  
    1             Physics, Maths  
    2                        NaN  
    3                    English  
    

    如果性能不重要,则每行使用Series.nlargest,但是如果使用大的DataFrame的话,它的确很慢:

    df1 = df.iloc[:, 1:]
    m = df1 > 80
    count = m.sum(axis=1)
    
    df['Top_3_above_80'] = (df1.where(m)
                               .apply(lambda x: ', '.join(x.nlargest(3).index), axis=1)[count > 0])
    print (df)
      Student_Name  Maths  Physics  Chemistry  Biology  English  \
    0     John Doe     90       87         81       65       70   
    1     Jane Doe     82       84         75       73       77   
    2     Mary Lim     40       65         55       60       70   
    3     Lisa Ray     55       52         77       62       90   
    
                  Top_3_above_80  
    0  Maths, Physics, Chemistry  
    1             Physics, Maths  
    2                        NaN  
    3                    English  
    

    性能

    #4k rows
    df = pd.concat([df] * 1000, ignore_index=True)
    #print (df)
    
    def f1(df):
        df1 = df.iloc[:, 1:]
        m = df1 > 80
        count = m.sum(axis=1)
        arr = df1.columns.values[np.argsort(-df1.where(m), axis=1)]
    
        m = np.arange(arr.shape[1]) < count[:, None]
        a = np.where(m, arr, '')
    
        L = [', '.join(x).strip(', ') for x in a]
        df['Top_3_above_80'] = pd.Series(L, index=df.index)[count > 0]
        return df
    
    def f2(df):
        df1 = df.iloc[:, 1:]
        m = df1 > 80
        count = m.sum(axis=1)
    
        df['Top_3_above_80'] = (df1.where(m).apply(lambda x: ', '.join(x.nlargest(3).index), axis=1)[count > 0])
        return df
    
    In [210]: %timeit (f1(df.copy()))
    19.3 ms ± 272 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
    
    In [211]: %timeit (f2(df.copy()))
    2.43 s ± 61.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    根据行中阈值获取前'n'列的名称

  • 回答了问题 2020-03-25

    清理数学符号或将int值转换为0或1

    没有函数,强制转换或条件但具有 比较的另一种方式:

    d = some_int_value * (x > 0)
    

    但是,就可读性而言,三元... if ... else ...应该更可取。

    *如果您希望使用纯数学方法,则可以使用1-0 x的幂运算,因为只有当 x == 0和0时,0 * x才是1 。但是,这是否以任何方式清楚是另一个问题。(还要注意,这为x <0除以零,但是您说您没有这些。) >>> x = 5 >>> 1 - 0*x 1 >>> x = 0 >>> 1 - 0*x 0

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    清理数学符号或将int值转换为0或1

  • 回答了问题 2020-03-25

    如何在Flask-Admin中禁用导航栏?

    Flask-Admin Github存储库中有一个自定义布局的示例,即“自定义布局”。

    在您的特定情况下,您需要删除`

    基本布局模板文件的{{%block page_body%}`Jinja2块中的html部分。

    在项目的templates / admin目录中创建一个menuless-layout.html文件,该文件扩展了内置的基本布局。复制并粘贴{%block page_body%} {%endblock%}块并删除`

    `部分。

    {% import 'admin/layout.html' as layout with context -%}
    {% extends 'admin/base.html' %}
    
    {% block page_body %}
      <div class="container{%if config.get('FLASK_ADMIN_FLUID_LAYOUT', False) %}-fluid{% endif %}">
    
        <!-- Nav section removed -->
    
        {% block messages %}
        {{ layout.messages() }}
        {% endblock %}
    
        {# store the jinja2 context for form_rules rendering logic #}
        {% set render_ctx = h.resolve_ctx() %}
    
        {% block body %}{% endblock %}
      </div>
    {% endblock %}
    

    然后指示Flask-Admin使用此模板作为基本布局:

    # Create admin with custom base template
    admin = admin.Admin(app, 'Example', base_template='admin/menuless-layout.html', template_mode='bootstrap3')
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    如何在Flask-Admin中禁用导航栏?

  • 回答了问题 2020-03-25

    在没有自联接表的情况下将单个列与多个值匹配

    好像

    SELECT routing_id
    FROM ec.production_autoroutingtag
    WHERE (tag_type, tag_value) IN (('mounting_type', 'smd'),
                                    ('x_ray', 'true'),
                                    ('depaneling', 'false'))
    GROUP BY routing_id
    HAVING COUNT(DISTINCT tag_type, tag_value) = 3
    
    • 更新

    如果您需要使用非等值条件来检查值,那么必须结合使用OR将条件分别检查每对(标记,值):

    SELECT routing_id,
           COUNT( tag_type) 
    FROM ec.production_autoroutingtag 
    WHERE (tag_type, tag_value) IN (('mounting_type','qfn'), ('panel_qty','1')) 
       OR (tag_type = 'bom' and tag_value >= '10')
       OR (tag_type = 'cpl' and tag_value >= '158')
    GROUP BY routing_id 
    HAVING COUNT(tag_type) = 4; 
    

    注意-比较“大于或等于”将按STRINGS进行(即“ 5”将为TRUE)!如果需要比较为数字,则必须对字段值使用正确的类型转换,对引用值使用正确的数据类型:

    SELECT routing_id,
           COUNT( tag_type) 
    FROM ec.production_autoroutingtag 
    WHERE (tag_type, tag_value) IN (('mounting_type','qfn'), ('panel_qty','1')) 
       OR (tag_type = 'bom' and tag_value + 0 >= 10)
       OR (tag_type = 'cpl' and tag_value + 0 >= 158)
    GROUP BY routing_id 
    HAVING COUNT(tag_type) = 4; 
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    在没有自联接表的情况下将单个列与多个值匹配

  • 回答了问题 2020-03-25

    如何在python中找到列表数组的最小点

    无需对所有最小值进行排序,您可以获取最低的对:

    def get_minima(array):
        sdiff = np.diff(np.sign(np.diff(array)))
        rising_1 = (sdiff == 2) 
        rising_2 = (sdiff[:-1] == 1) & (sdiff[1:] == 1) 
        rising_all = rising_1 
        rising_all[1:] = rising_all[1:] | rising_2 
        min_ind = np.where(rising_all)[0] + 1 
        minima = list(zip(min_ind, array[min_ind]))
        return min(minima, key=lambda pair: pair[1])
    

    例如:

    minima = [(59, 7.958373616052042e-10),
     (69, 6.5364637051479655e-09),
     (105, 1.0748381102806489e-08),
     (88, 2.953895857338913e-07),
     (27, 9.083111768048306e-07)]
    
    minimum = min(minima, key=lambda pair: pair[1])
    print(minimum)
    
    >>> (59, 7.958373616052042e-10)
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    如何在python中找到列表数组的最小点

  • 回答了问题 2020-03-25

    如何在Pyqt5中使用按钮生成一个圆

    通常的方法如果要在窗口小部件上绘制额外的形状,则是要覆盖paintEvent,创建一个QPainter对象,然后使用此painter绘制所需的形状。在您的情况下,由于您只想在某些情况下绘制圆,因此可以使用一个标志来指示是否应绘制该圆,并且仅当此标志为True时,才在`paintEvent'中绘制该圆。

    class Window(QMainWindow):
        def __init__(self):
            ....
            self.should_paint_circle = False
    
        def paintEvent(self, event):
            super().paintEvent(event)
            if self.should_paint_circle:
                painter = QtGui.QPainter(self)
                painter.setRenderHint(QPainter.Antialiasing)
                painter.setPen(QPen(Qt.black, 5, Qt.SolidLine))
                painter.drawEllipse(100, 100, 100, 100)
    
        def paintcircle(self):
            self.should_paint_circle = True
            self.update()
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    如何在Pyqt5中使用按钮生成一个圆

  • 回答了问题 2020-03-25

    修改包含Python3中的集合的集合列表

    因此,可以肯定的是,一旦我发布了这个问题,我就已经接近答案了,但是我没有意识到我已经接近了答案。使用额外的元组解决此问题的方法是:

    import itertools
    first_range = zip((10\*exp for exp in range(7)),(10\*exp for exp in range(1,8)))
    second_range = zip((5\*0\*exp if exp != 1 else 10\*2 for exp in range(1,8)),(5\*0\*exp for exp in range(2,9)))
    iterator_of_tuples = itertools.product(first_range,second_range)
    
    # the next line solves my issue
    final_list = [x + y for x, y in iterator_of_tuples]
    

    我所做的只是一个简单的元组合并:如何在Python中合并两个元组?。不知道为什么我以前没想到

    编辑:根据ShadowRanger的输入更新了答案

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    修改包含Python3中的集合的集合列表

  • 回答了问题 2020-03-25

    Python If语句返回ValueError

    这样的答案也很好地解释了,谢谢@MisterMiyagi

    问题是,当您认为已将其过滤掉时,似乎出现了x ['Min']`的一些意外值。实际上,您的布尔值之一具有误导性:

    if x['Min'] != "" or "ARR" or "BRD":
    

    这只是检查x ['Min']!=“”。实际上,或“ ARR”不会做任何事情,因为布尔bool(“ ARR”)始终为True!同样适用于或“ BRD”,这解释了为什么最终在循环中最终将BRD值转换为整数的原因。如果将x ['Min']替换为您要跳过的值,请参见以下内容:

    >>> xmin = "BRD"
    >>> xmin != "" or "ARR" or "BRD"
    True
    

    当你想要错误!

    如果您想说x ['Min']不能为“”“或ARR或BRD`,则可以使用以下代码:

    if x['Min'] not in ["", "ARR", "BRD"]:
    

    要么

    if x['Min'] and x['Min'] not in ["ARR", "BRD"]:
    

    证明:

    >>> xmin = "BRD"
    >>> xmin not in ["", "ARR", "BRD"]
    False
    

    回答来源:stackoverflow

    踩0 评论0
  • 提交了问题 2020-03-25

    Python If语句返回ValueError

  • 回答了问题 2020-03-25

    Python Django显示嵌套对象

    根据您的模型,您必须在HotelSocialMediaSerializer中使用type关键字而不是hotel_social_media_type。因为您的HotelSocialMedia具有与HotelSocialMediaType相关的type字段。更改关键字可以解决您的问题。

    class HotelSocialMediaSerializer(serializers.ModelSerializer):
       """Serializes media files"""
        type = SocialMediaTypeSerializer(many=False, read_only=True)
    
        class Meta:
            model = models.HotelSocialMedia
            fields = ('url', 'type')
    

    如果要使用hotel_social_media_type关键字,则可以使用SerializerMethodField这样:

    class HotelSocialMediaSerializer(serializers.ModelSerializer):
       """Serializes media files"""
        hotel_social_media_type = serializers.SerializerMethodField()
    
        class Meta:
            model = models.HotelSocialMedia
            fields = ('url', 'hotel_social_media_type')
    
        def get_hotel_social_media_type(self.obj):
            serializer = SocialMediaTypeSerializer(obj.type)
            return serializer.data
    

    回答来源:stackoverflow

    踩0 评论0
正在加载, 请稍后...
滑动查看更多