小编Bob*_*obi的帖子

尝试增加关联数组元素时出现错误的数组下标错误

我可以创建一个关联数组并将一个整数分配给一个包含单引号的键:

$ declare -A dict
$ var="john's"
$ dict[$var]=1
$ echo ${dict[$var]}
1
$ declare -p dict
declare -A dict=(["john's"]="1" )
Run Code Online (Sandbox Code Playgroud)

但是当我尝试增加它的价值时:

$ (( dict[$var]++ ))
bash: ((: dict[john's]++ : bad array subscript (error token is "dict[john's]++ ")
$ (( dict["$var"]++ ))
bash: ((: dict[john's]++ : bad array subscript (error token is "dict[john's]++ ")
$ (( dict["${var}"]++ ))
bash: ((: dict[john's]++ : bad array subscript (error token is "dict[john's]++ ")
Run Code Online (Sandbox Code Playgroud)

我总是得到同样的错误。我究竟做错了什么?

bash associative-array

7
推荐指数
2
解决办法
444
查看次数

名称及其参考值如何相关?

阅读Charles Dierbach撰写的"使用Python的计算机科学导论 "一书,我得到一个问题:

  • 在第210页中,他说"引用是一个引用或"指向"另一个实体的位置的值.变量的引用值可以通过内置函数id来确定."

所以引用只是对象内存中的地址.

现在,如果我没有弄错的话,当我创建一个变量时:

>>> a = 3
Run Code Online (Sandbox Code Playgroud)

名称a由Python在命名空间中自动放置.

如果我做:

>>> id(a)
4548344816
Run Code Online (Sandbox Code Playgroud)

我得到了对象3的内存地址,即a引用的对象.

所以我想知道的是,名称a参考值是如何相关的.

我猜测,当名称放入命名空间时,它包含两件事:

  1. 这个名字本身.

  2. 基准值(对象的ID)

像一对可能:a:reference value

如果是这样,是否有一些instrospection工具来查看命名空间中的条目是什么样的?

python

6
推荐指数
1
解决办法
66
查看次数

字符串格式方法.字典

我正在学习如何使用字符串format方法,我发现了一些我不理解的东西.当我做:

>>> s = "My {comp[b]}"
>>> s.format(comp = {'a': 'laptop', 'b': 'desktop'})
'My desktop'
Run Code Online (Sandbox Code Playgroud)

我得到了预期的结果.但是当我尝试从方法中定义字典时,只是使用了里面的名字:

>>> comp = {'a': 'laptop', 'b': 'desktop'}
>>> s = "My {comp[b]}"
>>> s.format(comp)
Run Code Online (Sandbox Code Playgroud)

我得到KeyError: 'comp'.为什么?

python python-3.3

0
推荐指数
1
解决办法
45
查看次数

标签 统计

python ×2

associative-array ×1

bash ×1

python-3.3 ×1