我有一个功能:
def func(i, k):
j = 0
while True:
yield j * i + k
j += 1
Run Code Online (Sandbox Code Playgroud)
还有一些i和k实例:
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,?的一些组合*?
我有几个不同的关联数组作为变量:
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)
但这些都没有真正奏效。我可以获得一个间接级别来指向我需要的关联数组吗?
我有一个在嵌入式系统上运行的代码,它必须运行得非常快.我知道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()...)但它会这样做.另外,原谅我的默默无闻.
非常感谢,
这是一个名为'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)
如何使用泛型创建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) 尝试将变量从用户输入传递到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)