小编Col*_*edy的帖子

识别列表中不同连续数字的组

在另一篇SO帖子中,Python用户询问如何对连续数字进行分组,使得任何序列都可以由其开始/结束来表示,并且任何散列图都将显示为单个项目.接受的答案对于连续序列非常有效.

我需要能够适应类似的解决方案,但需要一系列具有潜在(并非总是)变化增量的数字.理想情况下,我如何表示也将包括增量(因此他们将知道它是否每隔3,4,5,n)

引用原始问题,用户要求输入/输出以下内容

[2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20]  # input
[(2,5), (12,17), 20]
Run Code Online (Sandbox Code Playgroud)

我想要的是以下内容(注意:为了清晰起见,我编写了一个元组作为输出,但是使用其步长变量优先选择xrange):

[2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20]  # input
[(2,5,1), (12,17,1), 20]  # note, the last element in the tuple would be the step value
Run Code Online (Sandbox Code Playgroud)

它还可以处理以下输入

[2, 4, 6, 8, 12, 13, 14, 15, 16, 17, 20]  # input
[(2,8,2), (12,17,1), 20]  # note, the last element in the tuple would be …
Run Code Online (Sandbox Code Playgroud)

python

9
推荐指数
1
解决办法
337
查看次数

PyQt - 即使禁用了QAction也可以检查它

我想要一个行为略有改变的QAction.我希望QAction只在检查时发出信号,并且我希望它的复选框始终可以检查,即使QAction已被禁用.例如,如果将QAction设置为setEnabled(False),则无法单击QAction或选中/取消选中它.我喜欢它不能再被点击了,但不喜欢我无法切换QAction中的复选框.是否有可能修改它以获得我正在寻找的东西?

我在下面附上了一个示例文件.目标是在QAction设置为禁用(setEnabled(False))的情况下制定一些解决方案,但用户仍然可以检查/取消选中它.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''An example file with a QAction that stays checkable.'''

# IMPORT STANDARD LIBRARIES
import sys

# IMPORT THIRD-PARTY LIBRARIES
from Qt import QtWidgets
from Qt import QtCore


class AlwaysOpenAction(QtWidgets.QAction):
    def __init__(self, *args, **kwargs):
        super(AlwaysOpenAction, self).__init__(*args, **kwargs)
        self.toggled.connect(self.printout)

    def printout(self):
        if self.isChecked():
            print('Checkbox was checked')


class WindowTest(QtWidgets.QWidget):

    '''A basic window.'''

    def __init__(self, parent=None):
        '''Init the window.'''
        super(WindowTest, self).__init__(parent=parent)
        self.setLayout(QtWidgets.QHBoxLayout())
        self.menubar = QtWidgets.QMenuBar(parent=self)
        self.menu = self.menubar.addMenu('Some menu')

        action = AlwaysOpenAction('something', self.menu)
        action.setCheckable(True)
        action.setEnabled(False) …
Run Code Online (Sandbox Code Playgroud)

python pyqt

8
推荐指数
1
解决办法
998
查看次数

sphinx - 如何包含 Python 函数作为源代码

Sphinx 非常擅长链接到特定的 Python 对象。

例如,写

:func:`foo.bar`
Run Code Online (Sandbox Code Playgroud)

将直接链接到bar中的函数foo.py。我想要相同的功能,但是我不希望创建可点击的链接,而是希望它是bar(), 的代码。

该.. code-block:: language指令要求您手动编写要添加的代码。但我想使用intersphinx链接到外部 Sphinx 项目中已存在的代码,而不是自己编写代码。:mod:、:func:、 和其他仅创建链接,实际上并不包含源代码。

还有,.. literalinclude:: filename但就我而言,我无法使用它,因为该函数来自 Sphinx 项目外部(它是使用 intersphinx 链接的,不是实际项目的一部分)。即使.. literalinclude:: filename可以以某种方式跨项目工作,我认为我仍然需要使用:lines:来过滤每个功能,这将是一个巨大的痛苦来跟踪。

如何通过名称空间路径引用函数/类并使用它将其源代码直接添加到 sphinx 第一个文件中?(不是可点击的链接,而是文字代码)。

python python-sphinx

7
推荐指数
1
解决办法
1609
查看次数

cmake - 如何更改compile_commands.json输出位置

下面是一个 C++ 项目结构示例:

- {root}
    - CMakeLists.txt
    - build/
        - compile_commands.json  <-- This file gets generated  
    - src/
        - CMakeLists.txt
        - files here
    - compile_commands.json  <-- This is where I want compile_commands.json to be built to
Run Code Online (Sandbox Code Playgroud)

如果我构建项目,它会在“build”文件夹中创建一个“compile_commands.json”文件。但我实际上想要它在“{root}”下面。有没有办法指定compile_commands.json的位置?或者我必须手动复制它?

这些是我通常用来构建项目的命令

(如果 cd 进入 {root}) cmake . -B build 替代方案: cd {root}/build && cmake ..

在这两种情况下,compile_commands.json 都会添加到构建文件夹中

cmake

7
推荐指数
1
解决办法
5501
查看次数

在bash中将环境变量和函数打印为可执行命令

在bash中,如果你alias在终端中运行,它会打印出一个定义的别名列表作为命令,如下所示:

alias foo=bar
Run Code Online (Sandbox Code Playgroud)

如果你愿意,你可以alias > my_aliases.sh,然后source my_aliases.sh.我想要相同的东西,但对于环境变量和定义的函数.

env看起来它可能会起作用,但这并不是很有效.我需要这个输出环境变量和函数,但我在输出中看到这样的行env:

BASH_FUNC_foo()=() {  ls foo 
}
Run Code Online (Sandbox Code Playgroud)

foo是我的函数的实际名称,但我不能将输出添加env到文件和source它.如果我这样做,脚本会像这样错误:

bash: test.sh: line 8: `BASH_FUNC_pkgs()=() {  pkg ls "$@"'
Run Code Online (Sandbox Code Playgroud)

是否有可能只打印环境变量,然后以其他方式打印导出的函数,这是执行友好的?任何意见,将不胜感激.

bash

3
推荐指数
1
解决办法
46
查看次数

git - 即使使用 SSH 风格的 git@github,您也可以通过 HTTPS 进行克隆吗

我正在尝试通过 .git 克隆具有子模块的 git 存储库git submodule update --init --recursive。这些子模块都使用“git@github.com:foo/bar.git” URL。不幸的是,我的工作场所正在阻止 SSH URL 进入他们的防火墙。但是,我可以通过 HTTPS 进行克隆,没有任何问题。

如前所述,子模块 URL 被硬编码在存储库中以使用 SSH。有没有办法告诉 git 使用 HTTPS 克隆这些子模块存储库,而不是 SSH 对 git 存储库进行任何直接修改?

git ssh git-submodules

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

用密钥迭代字典的每个元素

假设你有这样的字典

dict_h = {'seven': [8, 9, 10]}
Run Code Online (Sandbox Code Playgroud)

我想像这样迭代它

for key, values in dict_h.items():
    for value in values:
        print('key value', key, value)
Run Code Online (Sandbox Code Playgroud)

有没有办法在一行中做到这一点?我查看了itertools,看看是否有什么东西,但没有提出任何东西.

理想情况下

for key, value in iter_keyvalue(dict_h):
    print('key value', key, value)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都想要输出

"key value seven 8"
"key value seven 9"
"key value seven 10"
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
77
查看次数

标签 统计

python ×4

bash ×1

cmake ×1

git ×1

git-submodules ×1

pyqt ×1

python-sphinx ×1

ssh ×1