【问题标题】:Error: must use subscript when assigning associative array错误:分配关联数组时必须使用下标
【发布时间】:2019-08-03 10:18:15
【问题描述】:

我想要一个等效于 bash 的哈希图(键为 string,值为整数的 list)。所以,我写了以下代码-

declare -A PUBS

PUBS=( "FEE":"[345, 342]" "FOO":"[1, 2, 44]" "BAR":"[23, 67]" )

但是,我收到一条错误消息 must use subscript when assigning associative array

这里有什么问题?

【问题讨论】:

  • 由于[345, 342] 不是任何一种bash 字面量,您不妨省去不必要的括号和逗号,直接写PUBS=([FEE]="345 342" [FOO]="1 2 44" [BAR]="23 67")
  • 知道了,但是在代码中这样写会不会很痛苦?主要原因是我想将所有这些值作为列表参数传递给 Python 文件。
  • 这会假设您的 Python 程序正在使用类似 eval 的东西从字符串参数创建列表,对吧?这可能是个坏主意。
  • @chepner 哦,那你有什么推荐的?如何传递这些值[345, 342]?以及如何在我的 Python 程序中解析它们以创建一个列表?
  • 最简单的事情(假设没有其他参数)是将每个整数作为单独的参数传递,然后让 Python 将它们收集到一个列表中。不过,适当的治疗值得提出自己的问题。

标签: bash


【解决方案1】:

您没有使用正确的语法来指定键。这是[key]=value,而不是key:value。所以应该是:

PUBS=( ["FEE"]="[345, 342]" ["FOO"]="[1, 2, 44]" ["BAR"]="[23, 67]" )

【讨论】:

猜你喜欢
  • 2014-06-19
  • 2018-02-12
  • 2014-11-05
  • 2021-11-17
  • 1970-01-01
  • 2021-11-10
  • 2019-11-27
  • 2019-01-24
  • 2020-12-29
相关资源
最近更新 更多