小编her*_*ity的帖子

有没有办法在 VS 代码中使用正则表达式通过查找和替换将双引号引起来的单词括起来?

我的输出看起来像一个JSON对象,并且想要漂亮地打印它。我有一个插件可以漂亮地打印它,但只有当输出中的单词中包含双引号时我才能这样做,而我的输出没有(请参见下面的示例)。有没有办法使用 Visual Studio Code 提供的正则表达式来执行此操作,或者我是否必须学习如何获取脚本来为我执行此操作?

{a: b, c: [], d: {e: f} }
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{"a": "b", "c": [], "d": {"e": "f"} }
Run Code Online (Sandbox Code Playgroud)

稍后可以漂亮vscode-json:Beautify地打印并提供缩进,例如:

{
    "a": "b", 
    "c": [], 
    "d": {
       "e": "f"
    } 
}
Run Code Online (Sandbox Code Playgroud)

regex visual-studio-code

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

为什么常量值可能在运行时计算而不是由编译器计算?

我正在阅读 Bjarne 的A Tour of C++ ,他在第1.6 节 Constants中有这个例子。

constexpr int dmv = 17; // dmv is a named constant
int var = 17; // var is not a constant
const double sqv = sqrt(var); // sqv is a named constant, possibly computed at run time
Run Code Online (Sandbox Code Playgroud)

我的问题与他对最后一行的评论有关

...可能在运行时计算

从代码来看,值var,数字文字17不会在代码中的任何地方改变。为什么编译器不在编译时评估它?

我在查看时看到了这个问题的答案const,它用于语义,对于程序员而不是编译器来说更有意义。但我的主要问题是:

编译器可以不对此进行优化吗?如果不是,是因为要求编译器进行优化的要求太多了吗?

编辑:我想优化的编译器部分是计算,sqv因为var程序中的任何地方都没有改变。

c++

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

Python:在索引另一个列表的条件中使用的list变量

在条件的索引中使用条件的技术的名称是什么,但条件中的变量本身是一个列表?如您所见a,它是一个列表,但它用于检查列表中的相应元素b.

>>> a = [ 1, 2, 3]
>>> b = [7, 7,7]

>>> b[a==1] = 8

>>> b
[8, 7, 7]
Run Code Online (Sandbox Code Playgroud)

我正在使用numpy数组编写代码,并想到看看核心Python是否包含相同的功能,结果证明它存在.我只是无法搜索它,因为我对它的名称一无所知.

编辑:我想知道所谓的内容以及对正在发生的事情的解释,因为评论表明代码没有按我认为的那样做.

为了清楚和详细说明,这是我为numpy输入的代码,并且替换类似于Python列表.

>>> import numpy as np
>>> lower_green = np.array([0,180,0]) 
>>> upper_green = np.array([100,255,100])
>>> upper_green[lower_green == 0] = 7
>>> upper_green
array([  7, 255,   7])
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

如何编写函数来帮助区分空值和 0?

我正在尝试根据向量的输入计算平均值。如何向函数的调用者区分提供的是空向量还是仅包含 0 值的向量?我可以在一个函数中同时执行这两项操作还是需要 2 个函数?

c++

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

如何将分割数组中的每个字符串转换为数字?

我有一个字符串需要拆分并转换为数字。我决定拆分字符串并将字符串放入数组中,然后使用Array.prototype.every()函数和Number()函数将它们转换为数字。

当我检查第一个数组元素的类型时,我发现我仍然有一个字符串而不是数字。我的错误在哪里?这里的答案使得分割后的 JS 看起来会自动转换为数字,但通过记录第一个元素的类型证明这并没有发生。

function detectOutlierValue(string) {
    // convert string into array with numbers, 'separator " "
    var numArray = string.split(' ');
    console.log(typeof numArray[0]);
    console.log(numArray);

    numArray.every(function (item) {
        return Number(item);
    });
    console.log(numArray, typeof numArray[0]);
Run Code Online (Sandbox Code Playgroud)

我的输出是:

string
[ '2', '4', '7', '8', '10' ]
[ '2', '4', '7', '8', '10' ] 'string'
Run Code Online (Sandbox Code Playgroud)

javascript arrays

-1
推荐指数
1
解决办法
2209
查看次数

+= 运算符可以在 Python 中的单行 if 语句中使用吗?

我认为 Python 支持单行 if 语句,但+=在 Leetcode 和 Repl 上出现错误。双线一号有效,所以我在这里主要是为了弄清楚 Python 的内部工作原理。

基于这个问题,我认为这会奏效。我想知道这是 Python 还是平台(Leetcode 或 Replit)问题。

这是我粘贴在下面以供后代使用的replit代码。

class Solution:
    def findNumbers(self, nums: List[int]) -> int:
        count = 0
        
        for num in nums:
            count += 1 if len(str(num)) % 2 == 0
            
        return count

nums = [12,345,2,6,7896]
s = Solution()
print(s.findNumbers(nums))
Run Code Online (Sandbox Code Playgroud)

我的错误是:

File "main.py", line 8
    count += 1 if len(str(num)) % 2 == 0
                                       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python if-statement python-3.x

-1
推荐指数
1
解决办法
58
查看次数