【问题标题】:Element-wise multiplication of two lists in TclTcl中两个列表的元素乘法
【发布时间】:2018-02-20 10:52:44
【问题描述】:

我有两个相同长度的列表,我想将它们按元素相乘(如集合中的笛卡尔积)。我该怎么做?例如,如果我写

set a {1 2 3 4 5} 
set b {1 2 3 4 5} 

,那么所需的输出是: {1 4 9 16 25}

【问题讨论】:

    标签: list tcl multiplication


    【解决方案1】:

    两个列表 lmap 非常适合:

    set a {1 2 3 4 5}
    set b {1 2 3 4 5}
    
    set result [lmap x $a y $b {expr {$x * $y}}]
    

    如果您使用的是 Tcl 8.5(或更早版本),请改用它:

    set a {1 2 3 4 5}
    set b {1 2 3 4 5}
    
    set result {}
    foreach x $a y $b {
        lappend result [expr {$x * $y}]
    }
    

    foreach 的多列表形式确实支持很长时间了。

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多