如何在Python中创建变量列表

0 投票
2 回答
5155 浏览
提问于 2025-04-18 05:53

我想在Python中创建一个变量列表,这个列表里的每个项目都是变量。当我改变这些变量时,列表里的内容也会跟着改变。举个例子:

a = 5
someList.append(a)
a = 3
someList
someList[0.value()]

Output:
[a]
[3]

补充说明

我为什么想这么做呢?

因为我想在几个不同大小的已排序数组中寻找最小值。到某个时候,其中一个数组的迭代指针会变成空指针,我想把这个数组从我正在搜索的数组列表中移除。

我能想到的唯一方法就是创建一个指向这些数组的变量列表,这样当某个数组不再相关时,就可以把它移除。

2 个回答

0

在列表里存储变量并没有简单的方法(如果有的话),你应该使用字典。字典可以让你更方便地命名、列出和修改变量。举个例子:

a=1
b=1
myDict={}
myDict['a']=a
myDict['b']=b
print myDict

>> {'a': 1, 'b': 1}

myDict['b']=5
print myDict

>> {'a': 1, 'b': 5}
4

好的,我不想理会你说的其他内容,因为我看完后已经吃了止痛药。

因为我想在几个不同大小的已排序数组中找出最小值

你说你有几个已排序的数组,而且它们的大小都不一样:

>>> l1 = [4,5,6,7,8,9]
>>> l2 = [2,7,8,9,11,12,13,14]
>>> l3 = [3,6,9,12,15,18,21]
>>> l4 = [5,6,7,8]

你想找最小值吗?

>>> ll = [l1,l2,l3,l4]
>>> min([l[0] for l in ll])
2

这里就是答案!

这里有个“窍门”:已排序的数组有一个“神奇”的特性:最小的元素总是在一端,通常是在第一个位置上!

\o/

你看,没有指针,没有循环,也没有头疼的事!

让我们把它做成一个函数:

>>> def get_minimum_of_many_lists(*args):
...    return min([l[0] for l in args])
...
>>> l1 = [4,5,6,7,8,9]
>>> l2 = [2,7,8,9,11,12,13,14]
>>> l3 = [3,6,9,12,15,18,21]
>>> l4 = [5,6,7,8]
>>>
>>> print(get_minimum_of_many_lists(l1,l2,l3))
2
>>> print(get_minimum_of_many_lists(l1,l3,l4))
3
>>> print(get_minimum_of_many_lists(l1,l4))
5
>>> print(get_minimum_of_many_lists(l1,l2,l3,l4,[0,1,2,3]))
0

撰写回答