Сложение или вычитание числа из каждого элемента списка с использованием скрипта Tcl - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть имя входного файла "input.dat" со значениями:

7 0
9 9
0 2
2 1
3 4
4 6
5 7
5 6

И я хочу добавить / вычесть любое число из столбца 2, преобразовав его в список с помощью Tcl Script. Я написал сценарий Tcl следующим образом:

set input [open "input.dat" r]
set data [read $input]
set values [list]
foreach line [split $data \n] {
    if {$line eq ""} {break}
    lappend values [lindex [split $line " "] 1]
}
puts "$values-2"
close $input

Но на выходе получается: 0 9 2 1 4 6 7 6-2

Кто-нибудь может мне помочь, как решить эту проблему? или в чем ошибка в скрипте? Также полезно, если кто-нибудь может помочь мне с правильным сценарием.

1 Ответ

1 голос
/ 04 апреля 2019

Я все еще не на 100% уверен, что вы хотите, но все параметры кажутся решаемыми с помощью команды lmap, которая предназначена для применения операции к каждому элементу списка.

ВотКак объединить каждый элемент с -2:

set values [lmap val $values {
    string cat $val "-2"
}]

Вот как вычесть 2 из каждого элемента:

set values [lmap val $values {
    expr {$val - 2}
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...