小编per*_*eal的帖子

zip生成器从元组列表传递参数

我有一个功能:

def func(i, k):
  j = 0
  while True:
    yield j * i + k
    j += 1
Run Code Online (Sandbox Code Playgroud)

还有一些ik实例:

pars = [(2, 4), (1, 5), (7, 2)]
Run Code Online (Sandbox Code Playgroud)

如何在不知道pars的长度的情况下压缩pars的func?像这样:

for func_tups in zip(func(2, 4), func(1, 5), func(7, 2)):
   print func_tups
Run Code Online (Sandbox Code Playgroud)

我想象地图,拉链,lambda,?的一些组合*

python iterator tuples

3
推荐指数
2
解决办法
325
查看次数

你能在 bash 中为变量分配关联数组吗?

我有几个不同的关联数组作为变量:

declare -A FIRST=( [hello]=world [foo]=bar )
declare -A SECOND=( [bonjour]=monde [fu]=ba )
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是取第三个变量并将其分配给一个或另一个,例如:

usethisarray=$FIRST
Run Code Online (Sandbox Code Playgroud)

或者可能

declare -a usethisarray=$FIRST
Run Code Online (Sandbox Code Playgroud)

但这些都没有真正奏效。我可以获得一个间接级别来指向我需要的关联数组吗?

bash

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

使用C++模板或宏进行编译时函数生成

我有一个在嵌入式系统上运行的代码,它必须运行得非常快.我知道C和宏,这个特定的项目主要用C编码,但它也使用C++模板[越来越多].有一个内联函数:

inline my_t read_memory(uint32 addr) {
  #if (CURRENT_STATE & OPTIMIZE_BITMAP)
    return readOptimized(addr);
  #else
    return MEMORY[addr];
  #endif
}
Run Code Online (Sandbox Code Playgroud)

该函数以优化的方式或基于当前状态的传统方式从存储器读取,并且位图告知是否在特定状态下使用优化.

#define STATE_A 0x0001
#define STATE_B 0x0010
#define STATE_C 0x0100
#define STATE_D 0x1000

#define OPTIMIZE_BITMAP 0x1010 // optimize states d and b
Run Code Online (Sandbox Code Playgroud)

在执行过程中(好的,编译),我尝试重新定义CURRENT_STATE,如下所示:

int main(){
  #define CURRENT_STATE STATE_A
  do_a();
  #undef CURRENT_STATE
  #define CURRENT_STATE STATE_B
  do_b();
  ....
}
Run Code Online (Sandbox Code Playgroud)

所有do_X()函数都会调用read_memory().我无法使这种方法奏效.当我使用#warning语句时,我可以看到当前状态的值总是STATE_A.这不是我的问题,虽然如果你可以帮助我,我会很高兴.所以,我的问题是,有没有办法使用模板而不是宏来做这种事情?

更多信息:我必须使用内联函数,因为我无法导出MEMORY [],这是一个库函数.我真的不想修改函数原型(比如read_memory()...)但它会这样做.另外,原谅我的默默无闻.

非常感谢,

c++ macros templates cuda inline

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

这个AWK命令如何保留数组元素顺序?

这是一个名为'colors.txt'的文件中的RGB值列表

255 222 0  
101 153 255  
255 153 0  
13  112 84  
13  112 84  
255 222 0  
13  112 84  
9   112 84  
Run Code Online (Sandbox Code Playgroud)

我可以使用awk数组从文件中获取5个独特的RGB组合

awk '{arr[($1","$2","$3)]} END {for (i in arr) print i}' colors.txt
Run Code Online (Sandbox Code Playgroud)

这给出了:

9,112,84  
255,222,0  
13,112,84  
255,153,0  
101,153,255  
Run Code Online (Sandbox Code Playgroud)

请注意,这些不是它们在输入文件中的顺序.但是,这个命令

awk 'arr[($1","$2","$3)]++==0 {print ($1","$2","$3)}' colors.txt

255,222,0  
101,153,255  
255,153,0  
13,112,84  
9,112,84  
Run Code Online (Sandbox Code Playgroud)

保留订单.这究竟是如何工作的?我在这里找到了第二个命令版本.

arrays awk

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

地图的通用自动修改功能

如何使用泛型创建vivify密钥?这段代码甚至没有编译:

/* populate the map with a new value if the key is not in the map */
private <K,V> boolean autoVivify(Map<K,V> map, K key)
{
  if (! map.containsKey(key))
  {
    map.put(key, new V());
    return false;
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)

java generics dictionary autovivification

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

将bash输入变量传递给awk

尝试将变量从用户输入传递到awk:

尝试过awk -v的变体,错误表明'awk:invalid -v option',即使该选项列在man文件中也是如此.

#! /bin/bash
read -p "Enter ClassID:" CLASS
read -p "Enter FacultyName:" FACULTY


awk '/FacultyName/ {print}' data-new.csv > $FACULTY.csv
awk -vclass=${CLASS} '/class/ {print}' data-new.csv >> $FACULTY.csv 


echo Class is $CLASS
echo Faculty member is $FACULTY
Run Code Online (Sandbox Code Playgroud)

bash awk

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