tcl - Tcl中N个列表中元素/数字的总和?
问题描述
如何从 tcl 的 n 个列表中添加元素/数字?我在 python 中尝试过,它使用以下方法工作:
[sum(x) for x in zip(*C)]
如何在 tcl 中做到这一点?tcl 中有 zip 功能吗?
有没有其他方法可以实现这一目标?
我现在有 2 个列表:
l1 {11 333 4 567 129}
l2 {23 47 56 10 13}
我可以有 N 个列表
我需要从这些列表中返回元素的总和。
对于我在下面实现的两个列表:
set result {}
foreach x $l1 y $l2 {
lappend result [expr {$x + $y}]
}
我担心的是:我可以有一个或多个列表。那么在那种情况下我该如何实现呢?
解决方案
然后你不希望每个列表都有一个变量,你想要一个列表之类的东西。
这是我对肖恩上述建议的看法:
set l1 {11 333 4 567 129}
set l2 {23 47 56 10 13}
lappend l $l1 $l2
proc zippedSum {p} {
set inner [llength [lindex $p 0]]
set result [list]
for {set i 0} {$i < $inner} {incr i} {
lappend result [::tcl::mathop::+ {*}[lmap sublist $p {lindex $sublist $i}]]
}
return $result
}
zippedSum $l
您不会维护单独的变量,而是维护列表 ( l
)。然后,您将处理每个索引的子列表(最大索引由第一个子列表确定),使用在其他地方推荐的lmap/lindex 组合用于您所谓的压缩。
推荐阅读
- google-analytics - Google Analytics drop 未显示在 HubSpot Analytics 中
- amazon-ecs - 为什么在 AWS 上运行 docker
- google-calendar-api - Events.list:freeBusyReader 日历不尊重 singleEvents 设置
- git - 防止樱桃挑选后提交后挂钩
- python - 在 geopandas 中转换为字符串时修剪几何列
- replace - 如何从数据框的子集中删除值
- regex - Powershell RegEx 在空行之后包含所有输出
- python - 从 Twilio Message 获取消息内容
- python - 我如何创建返回按钮 tkinter
- ios - SQLite.swift 框架