Nano Hash - криптовалюты, майнинг, программирование

Как получить элемент индекса списка TCL с помощью переменной?

У меня есть список TCL

   set d_nets { reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7} 

Я хочу определенных манипуляций и получить элемент. Пример -

  for {set i 0} {$i < 128} {incr i} {
      set new_indx [expr { 7 - $i }]   #expression can be more complicated
      lindex $d_nets $new_indx 
  }

Однако это указывает на ошибку

Ошибка: неверный индекс "....": должен быть целым?[+-]целым? или конец?[+-]целое?

Любая помощь с использованием lindex здесь?

25.01.2016

  • Какую версию Tcl вы используете? Вывод команды info patchlevel будет хорошим. 26.01.2016
  • Код отлично работает для версии 8.6. Просто вам нужно удалить этот комментарий #expression может быть более сложным, или вы должны изменить, например, ;#expression может быть более сложным. и Да, может быть несоответствие версии. Проверьте версию TCL с помощью puts $tcl_version 26.01.2016
  • Интерпретатор TCL является частью инструмента EDA. версия 8.5 27.01.2016

Ответы:


1

Я не получаю ошибку, которую вы получаете, но обратите внимание, что вы можете написать

lindex $d_nets 7-$i

вместо того, чтобы вычислять значение индекса отдельно.

Помимо необходимости использовать точку с запятой перед цитированием #, ваш код отлично работает здесь.

Вероятно, вы тоже хотите избавиться от запятых в списке. Tcl использует пробелы в качестве разделителя списка, поэтому запятые заканчиваются в значениях.

25.01.2016
  • Нет, это не помогает. Может быть разница с версией TCL. 'lindex $d_nets 7-$i' выдает ошибку: неверный индекс: 7-0 должен быть целым числом 25.01.2016
  • @user2435030 user2435030: удивительно, что вы получаете сообщение об ошибке, поскольку 7-0 — это форма integer?[+-]integer?, запрошенная другим сообщением об ошибке. Какая у вас версия? Является ли интерпретатор Tcl частью какого-либо другого программного обеспечения? 25.01.2016
  • Да, интерпретатор TCL является частью инструмента EDA. версия 8.5 27.01.2016
  • Я точно знаю, что стандарт 8.5 принимает синтаксис lindex $list 7-0. Возможно, ваш инструмент переопределил команду lindex. Извините, я не могу вам помочь. 27.01.2016
  • Есть ли альтернативный аналог lindex в tcl? как ссылка на массив?? 27.01.2016
  • Вы можете эмулировать lindex с другими командами списка, но их индексация, скорее всего, будет работать таким же образом. Массивы могут быть лучшим выбором для вас. 27.01.2016

  • 2

    Привет, при добавлении комментариев нам нужно добавить точку с запятой. После добавления точки с запятой все работает нормально.

    % set d_nets {reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7}

    reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7

    %

    % для {set i 0} {$i ‹ 128} {incr i} {

      set new_indx [expr { 7 - $i }]; #expression can be more complicated
    
      lindex $d_nets $new_indx
    

    }

    %

    Еще один вариант: мы можем объединить обе строки в одну следующим образом.

    for {set i 0} {$i ‹ 128} {incr i} {

    ставит [lindex $d_nets [выражение {7-$i}]]

    }

    29.01.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..