我发现我正在编写许多Makefile,可以使用 n个 元组列表清除它们。但是我找不到任何正确(干净)地进行此操作的方法。到目前为止,我只能使用
$(shell …) 和 tr , sed 或其他非Makefile标准。
例如,我想这样做:
XYZs = \
dog.c pull_tail bark \
duck.c chase quack \
cow.c tip moo
all:
@- $(foreach X Y Z,$(XYZs), \
$(CC) $X -o bully/$Y ; \
ln bully/$Y sounds/$Z ; \
)
有没有一种很好的方法来迭代Makefile中的 n个 元组列表?谢谢!
Makefile本质上是声明性的,因此我认为make本身不能提供所需的内容。但是,您似乎想将某些字符串值与特定目标相关联,因此可能会引起关注GNU make
的“
目标特定变量值”功能。这是手册的摘录:
目标特定变量的另一个特殊功能:定义目标特定变量时,该变量值也对该目标的所有依赖项有效(除非这些依赖项用其自己的目标特定变量值覆盖它)。因此,例如,如下语句:
prog : CFLAGS = -g
prog : prog.o foo.o bar.o
将设置
CFLAGS
以-g
在命令脚本prog
,但它也将设置CFLAGS
,以-g
在创建prog.o,foo.o的,而文件bar.o的命令脚本,并建立它们的依赖任何命令脚本。
如果您还没有阅读过GNU make手册,那真是太好了。
编辑: 要做您在评论中提出的问题:
dog: ANIMAL=dog.c BULLY=pull_tail SOUND=bark
采用:
dog: ANIMAL=dog.c
dog: BULLY=pull_tail
dog: SOUND=bark
输入是一个列表列表。请看下面。文件名是一个列表,包含的名称与列表中的列表数量相同(,,) 每个名称都附加到路径中:-- 程序在遍历列表时遍历包含路径的列表,并打印路径及其文件名。我希望输出是--。然而,我得到了下面的输出。请查看输入后的输出 输入 输出 我希望输出是-- 然而,我得到的结果如下: 我无法理解为什么在遍历列表时不能使用文件名遍历路径列表。我希望这有助于澄清问题。有人能帮忙吗? 我已经
问题内容: 这样遍历Java中的列表是否较慢: 相对于: 问题答案: 我假设您出于好奇而问,不会引用Knuth(可能有人会)。 我相信,一旦您的代码被编译,就不会有任何改变。它 确实 有所作为 之前 (例如2是很多更易读和简洁的),所以要为2号和不关心的休息。 就是我的2美分 编辑 请注意,代码段1中的代码会在每次循环运行时进行计算,这可能使其比代码2还要慢 还需要编辑 我必须仔细检查一下,Jos
问题内容: 我有一个这样的清单清单。 现在,我需要遍历上面的列表并输出一个字符串列表,如下所示(原始列表中没有数字) 问题答案: 准确执行您指定的操作的最简单解决方案是: 这基本上等效于迭代版本: 但是,这并不是遍历具有任意维数的多维列表的通用方法,因为嵌套列表推导/嵌套的for循环可能很难看。但是,对于2或3维列表,您应该放心。 如果您确实决定需要平整3个以上的尺寸,我建议实现一个递归遍历函数,
问题内容: 是否可以在Python中以以下方式迭代列表(将此代码作为伪代码进行处理)? 它应该产生 问题答案: 从食谱:
问题内容: 我想要一种算法来遍历列表切片。切片大小在功能之外设置,可以不同。 在我看来,这就像: 有没有一种使用python 2.5正确定义的方法或其他方法? edit1:澄清 “分区”和“滑动窗口”这两个术语听起来都适用于我的任务,但是我不是专家。因此,我将更深入地解释该问题并添加到问题中: FatherList是我从文件中获取的一个多级numpy.array。函数必须找到序列的平均值(用户提供
问题内容: 我有两个列表和数字,我想使用相同的指令遍历它们。像这样: 但这感觉多余。我知道我会写,但是要付出一定的时间。 有没有办法做到这一点而又不浪费时间呢? 问题答案: 这可以通过以下方式完成 : 将打印: 根据文档,请执行以下操作: 创建一个迭代器,该迭代器从第一个可迭代对象返回元素,直到耗尽为止,然后继续进行下一个可迭代对象,直到所有可迭代对象都耗尽为止。 如果列表中有列表, 则可用: 产