我有以下陈述:
A = "s"
B = ["1", "2", "3"]
当我打印B[2]时,我想得到对象“A”,例如:print(B[2])
,答案将给出“A”,并引用A的值
我如何用python实现它
如有任何建议,将不胜感激
谢谢大家
同样的问题以另一种方式提出:
我在论坛上看到了这一点:
>>>foo = 'a string'
>>>id(foo)
4565302640
>>> bar = 'a different string'
>>> id(bar)
4565321816
>>> bar = foo
>>> id(bar) == id(foo)
True
>>> id(bar)
4565302640
但如果我有:
>>> foo = "a string"
>>> id(foo)
36591240
>>> bar = ["1", "2", "3"]
>>> id(bar)
39186840
>>> bar[2] = foo
>>> id(bar) == id(foo)
Flase
如何在列表中指定值以匹配不同的对象
你需要的是
id(bar[2]) == id(foo)
。这将成为现实通常,列表是可变的,所以您可以为特定列表元素指定任何值
我不知道为什么要这样做,但是定义一个新的
list
类可能会有帮助:然后,您可以在定义映射后将其用作列表,该映射显示了哪个项目对应于哪个对象:
输出:
TL;DR
B[2] = A
您需要了解,在python中,字符串对象是不可变的对象, 这意味着这些对象无法更改,它们的行为与可变对象不同
因此,在定义字符串之后,将创建一个对象。但由于该对象是不可变的,因此,如果将其他变量指定给同一对象,则在更改原始变量时,您正在创建一个新对象,而不是更改所创建的对象
对于可变对象,赋值与您通常所做的一样 例如,看看这个:
对于您的示例,您可以定义一个新类而不是字符串
相关问题 更多 >
编程相关推荐