小编ruo*_*ola的帖子

如何同时使用多个键提取字典值?

我遇到了以下问题。

dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
Run Code Online (Sandbox Code Playgroud)

正常检索方法:dict1['a'] ->输出->1
预期方法:dict1['a', 'b']->输出->[1, 2]

我的要求是通过同时提供多个键从字典中提取多个值,如上面预期方法中所述。

有办法做到吗?如果我必须编辑内置的 dict 类方法,我该怎么做?

python dictionary key list

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

如何以编程方式创建和管理 macOS Safari 书签?

我正在制作一个脚本,它更新我的 macOS Safari 上的书签,以始终将我订阅的所有 subreddits 作为特定文件夹中的单个书签。我已经到了在 Python 中将所有 subreddits 作为元组排序列表的地步,将想要的书签名称作为第一个元素,将书签 url 作为第二个元素:

bookmarks = [
     ('r/Android', 'https://www.reddit.com/r/Android/'),
     ('r/Apple', 'https://www.reddit.com/r/Apple/'),
     ('r/Mac', 'https://www.reddit.com/r/Mac/'),
     ('r/ProgrammerHumor', 'https://www.reddit.com/r/ProgrammerHumor/')
]
Run Code Online (Sandbox Code Playgroud)

如何清除 Safari 中的 subreddit 书签文件夹并在该文件夹中创建这些新书签?

到目前为止,我一直在使用 Python,但是从 Python 程序调用外部 AppleScript 或 Shell 脚本是没有问题的。

这是想要的结果的图像,每个书签都链接到各自的 subreddit 网址:

书签文件夹

python safari macos applescript automation

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

如何让 Flask 记录到 stdout 而不是 stderr?

Flask 会自动进行各种日志记录,例如当收到 POST 请求时 Flask 会自动记录它:

127.0.0.1 - - [05/Jul/2019 18:18:16] "POST /test/ HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)

问题是此日志记录是完成到 的stderr,我希望它使用默认格式进行所有相同的日志记录,但sys.stdout改为记录到 。

我尝试过这样的事情:

import logging
import sys

app = flask.Flask(__name__)
handler = logging.StreamHandler(sys.stdout)
app.logger.addHandler(handler)
Run Code Online (Sandbox Code Playgroud)

根据Flask 的文档我尝试过:

import sys
from logging.config import dictConfig

dictConfig({
    'version': 1,
    'formatters': {'default': {
        'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s',
    }},
    'handlers': {'wsgi': {
        'class': 'logging.StreamHandler',
        'stream': 'sys.stdout',
        'formatter': 'default'
    }},
    'root': {
        'level': 'INFO',
        'handlers': ['wsgi']
    }
})

app = flask.Flask(__name__)
Run Code Online (Sandbox Code Playgroud)

但第一个没有达到预期的效果,第二个就崩溃了。

python logging flask

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

在 C++ 中解构时如何隐藏现有变量?

有没有办法在解构 a 时隐藏现有变量std::pair?例如,如果我定义了以下函数:

#include <iostream>
#include <utility>

std::pair<int, int> returns_pair(int a, int b)
{
    return std::make_pair(a * a, b * b);
}

void prints_two_variables(int a, int b)
{
    std::cout << a << "\n" << b << "\n";
}
Run Code Online (Sandbox Code Playgroud)

然后这个main函数工作正常,因为我从返回的中创建了新变量std::pair

int main()
{
    int a = 2;
    int b = 3;
    auto [x, y] = returns_pair(a, b);
    prints_two_variables(x, y);
    return 0;
}

Run Code Online (Sandbox Code Playgroud)

输出:

4
9
Run Code Online (Sandbox Code Playgroud)

但是我不能使用相同的变量名并隐藏现有变量,因为这会尝试再次实际声明它们:

int main()
{
    int a = 2;
    int b …
Run Code Online (Sandbox Code Playgroud)

c++ destructuring std-pair c++17 structured-bindings

4
推荐指数
2
解决办法
241
查看次数

为什么`\`会影响printf的返回值?

参考此处给出的答案,您必须从以下代码中得到什么输出:

#include<stdio.h>

int main()
{
    int a=65;
    printf("%d\n",printf("%d\
    \n",a));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它给出了输出:

65
4
Run Code Online (Sandbox Code Playgroud)

但对我来说,它似乎应该给出这个:

65
3
Run Code Online (Sandbox Code Playgroud)

为什么是输出65 4

c printf

4
推荐指数
2
解决办法
281
查看次数

如何将数学符号(例如 R^n)放入 Java 字符串中?

我想在 javafx 标签中显示 R^n 数学符号。我怎么能这样做?我找到了实数的 unicode 编号 - U+211x ( https://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode#Letterlike_Symbols_block ),但是将 \u+211x 插入如下所示的标签字符串会给出“无效的 unicode”错误

Label dim_label = new Label("n ( \u+212x ^n):");
Run Code Online (Sandbox Code Playgroud)

java math unicode javafx

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

Python 中如何实现变量交换?

下面的代码在 Python 中是如何工作的:

a = input()
b = input()
a, b = b, a  # STATEMENT 1
print(a, b)
Run Code Online (Sandbox Code Playgroud)

语句 1 是否在 Python 堆内存空间中创建第三个变量来交换两个数字,或者是否使用某种算法来进行交换?

python algorithm swap cpython

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

如何在 numpy 中将一个数组除以另一个数组元素?

我有两个数组,我希望第一个数组的所有元素除以第二个数组。例如,

In [24]: a = np.array([1,2,3])                                                      

In [25]: b = np.array([1,2,3])                                                      

In [26]: a/b                                                                        
Out[26]: array([1., 1., 1.])

In [27]: 1/b                                                                        
Out[27]: array([1.        , 0.5       , 0.33333333])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这不是我想要的答案,我想要的输出是这样的(我们可以看到 a 的所有元素都除以 b)

In [28]: c = []                                                                     

In [29]: for i in a: 
    ...:     c.append(i/b) 
    ...:                                                                            

In [30]: c                                                                          
Out[30]: 
[array([1.        , 0.5       , 0.33333333]),
 array([2.        , 1.        , 0.66666667]),
In [34]: np.array(c)                                                                
Out[34]: 
array([[1.        , 0.5       , 0.33333333],
       [2.        , 1.        , 0.66666667],
       [3.        , 1.5       , 1.        ]])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我不喜欢 …

python arrays division

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

使用 bash 检查包是否早于 24 小时

我想检查我的最后一个文件是否早于 24 小时。(django 中的项目)我的目录中有很多 zip 包,所以我必须用这部分代码“过滤”最后一个:ls -1 | sort -n | tail -n1

我在 .sh 文件中的代码:

#!/bin/bash

file="$HOME/path_directory ls -1 | sort -n | tail -n1"
current=`date +%s`;
last_modified=`stat -c "%Y" $file`;


if [ $(($current-$last_modified)) -gt 86400 ]; then
     echo "File is older that 24 hours" | mailx noreply@address -s "Older than 24 hours" me@mailmail.com
else
     echo "File is up to date.";
fi;
Run Code Online (Sandbox Code Playgroud)

这是我得到的一个错误:

stat: invalid option -- '1'
Try 'stat --help' for more information.
/path_directory/imported_file.sh: line 9: …
Run Code Online (Sandbox Code Playgroud)

bash shell

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

如何将具有不同参数的函数和返回类型添加到向量?

我正在尝试将具有不同参数的函数添加到向量中。

fn f1() {
    println!("Hello, World!");
}
fn f2(s: &str) -> String {
    String::from(s)
}
fn f3(i: i32) {
    println!("{}", i);
}

fn main() {
    let v = vec![f1, f3, f2];
}
Run Code Online (Sandbox Code Playgroud)

但这给出了错误:

fn f1() {
    println!("Hello, World!");
}
fn f2(s: &str) -> String {
    String::from(s)
}
fn f3(i: i32) {
    println!("{}", i);
}

fn main() {
    let v = vec![f1, f3, f2];
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以使这项工作?

vector rust

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