小编Gau*_*tam的帖子

Python字典,变量作为键

我是一个Python新手试图解析一个文件来制作一个内存分配表.我的输入文件格式如下:

48 bytes allocated at 0x8bb970a0
24 bytes allocated at 0x8bb950c0
48 bytes allocated at 0x958bd0e0
48 bytes allocated at 0x8bb9b060
96 bytes allocated at 0x8bb9afe0
24 bytes allocated at 0x8bb9af60    
Run Code Online (Sandbox Code Playgroud)

我的第一个目标是创建一个表来计算特定数量的字节分配的实例.换句话说,我对上面输入的所需输出将是这样的:

48 bytes -> 3 times
96 bytes -> 1 times
24 bytes -> 2 times
Run Code Online (Sandbox Code Playgroud)

(现在,我不关心内存地址)

由于我正在使用Python,我认为使用字典这样做是正确的方法(基于大约3个小时的阅读Python教程).这是一个好主意吗?

在尝试使用字典时,我决定将字节数设为'key',将计数器设为'value'.我的计划是在每次出现钥匙时递增计数器.截至目前,我的代码段如下:

# Create an empty dictionary
allocationList = {}

# Open file for reading
with open("allocFile.txt") as fp: 
    for line in fp: 
        # Split the line into a list (using space …
Run Code Online (Sandbox Code Playgroud)

python

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

传递给多个参数lambda表达式的参数

我刚看了STL关于STL的讲座.

大约57分钟的讲座,我们有这个代码:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

int main()
{
    std::vector<std::string> v;

    v.push_back("cat");
    v.push_back("antelope");
    v.push_back("puppy");
    v.push_back("bear");

    std::sort(v.begin(), v.end(),
              [](const std::string& left, const std::string& right)
                  {
                      return left.size() < right.size();
                  }
             );

    for (std::vector<std::string>::iterator i = v.begin(); i != v.end(); ++i)
    {
        std::cout << *i << " ";
    }

    std::cout << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它会按照长度的递增顺序打印向量中的字符串.我的问题是关于lambda表达式,它是sort函数的第三个参数.在内部,传递给输入参数'left'和'right'的是什么?

我添加了这一行:

std::cout << "left: " << left << ", right: " << right << std::endl;
Run Code Online (Sandbox Code Playgroud)

在lambda的主体里面,我得到的输出是:

左:羚羊,右:猫
左:羚羊,右:猫 …

c++ lambda c++11

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

xmonad 中的自定义键绑定不影响其他绑定

我正在使用 xmonad,并且想要一种锁定屏幕的好方法。所以我安装了 slock (apt-get install slock),效果很好。

然后我想要一个简单的按键序列来触发 slock,所以我在 xmonad.hs 中定义了这个新函数:

import qualified Data.Map as M

myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
        [ ((modMask .|. controlMask, xK_l),
           spawn "slock")
        ]
Run Code Online (Sandbox Code Playgroud)

并添加keys = myKeys到主函数中。

这使我能够使用 很好地锁定屏幕Ctrl+Alt+l,但其他 xmonad 快捷方式都不起作用!

有没有办法让我添加一个新的按键绑定,但不改变任何现有的绑定?

xmonad

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

标签 统计

c++ ×1

c++11 ×1

lambda ×1

python ×1

xmonad ×1