先进的阵列结构

时间:2016-03-28 09:46:26

标签: python arrays variables

我的词典具有以下结构:

a = 'stringA'
b = 'stringB'
c = 'stringC'

endpoints = {
    'foo1': a + 'string1' + b,
    'foo2' : a + 'string2' + c + 'string3' + b,
}

我的问题如下:当我调用endpoints['foo2']时,我得到了预期的数组值。但是,当我在数组声明和c的使用之间更改endpoints['foo2']的值时,c的值不会更新。

知道为什么会发生这种情况以及如何解决这个问题?

PS:我知道这可以创建一个简单的函数,但我认为这样效率会更低。

1 个答案:

答案 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 大部分兼容,但尝试使用它时可能会有一些较小的错误。