我的词典具有以下结构:
a = 'stringA'
b = 'stringB'
c = 'stringC'
endpoints = {
'foo1': a + 'string1' + b,
'foo2' : a + 'string2' + c + 'string3' + b,
}
我的问题如下:当我调用endpoints['foo2']
时,我得到了预期的数组值。但是,当我在数组声明和c
的使用之间更改endpoints['foo2']
的值时,c
的值不会更新。
知道为什么会发生这种情况以及如何解决这个问题?
PS:我知道这可以创建一个简单的函数,但我认为这样效率会更低。
答案 0 :(得分:2)
你可以这样做:
private void OnKeyDownHandler(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Enter)
{
textBlock1.Text = "You Entered: " + textBox1.Text;
}
}
您可以这样做,因为您可以更改列表中的值而不更改引用;
a = ['stringA']
b = ['stringB']
c = ['stringC']
endpoints = {
'foo1': a ,
'foo2' : b
}
print(endpoints['foo1']) #returns "[stringA]"
a[0]='otherString'
print(endpoints['foo1']) #returns "[otherString]"
和a
仍然使用相同的空格endpoints
对于纯字符串,这是不可能的,因为如果没有新的赋值,就无法更改它们。 Python中的字符串是不可变的。
编辑:另一种可能性是创建自己的字符串类。
这会删除a
括号:
[]
免责声明:正如评论中所解释的那样,我仍在使用python 2.7
虽然Python 3和2.7 大部分兼容,但尝试使用它时可能会有一些较小的错误。