List列表,想要输出变量,而不是值

时间:2016-03-01 22:01:04

标签: python python-3.x

我有一个列表如下:

a = [1, 2, 3]
b = [2, 3, 4]
c = []
append blah blah blah

我目前正在做:

for x in c:
   print(x)

并输出[1,2,3]。如何让它输出'a'而不是?

3 个答案:

答案 0 :(得分:2)

有几种方法可以达到你想要的效果。第一个建议需要使用不同的数据结构。最后一个建议是出于演示目的永远不会被使用

选项1.将数据存储在字典中:

my_data = {"a": [1, 2, 3], "b": [2, 3, 4]}
my_data["c"] = [my_data.get('a'), my_data.get('b')]

然后你只需迭代键值对。

>>> for name, value in my_data.items():
...     print name, value
...
a [1, 2, 3]
c [[1, 2, 3], [2, 3, 4]]
b [2, 3, 4]

字典没有有用的排序,所以如果你想订购,可以使用OrderedDict,或者像元组列表这样的其他数据结构。

或者你可以在迭代之前对它们进行排序:

for name, value in sorted(my_data.items()):
    print name, value

您还可以在分配变量后创建字典

>>> a = [1, 2, 3]
>>> b = [2, 3, 4]
>>> c = [a, b]
>>> my_data = {"a": a, "b": b, "c": c}

选项可怕。执行此操作的非常hackish方式(仅用于演示目的)是使用locals()

>>> a = [1, 2, 3]
>>> b = [2, 3, 4]
>>> c = [a, b]
>>> for name, value in locals().items():
...     if len(name) != 1:
...         continue
...     print name, value
...
a [1, 2, 3]
c [[1, 2, 3], [2, 3, 4]]
b [2, 3, 4]

答案 1 :(得分:0)

如果要打印变量名称,请参阅Can I print original variable's name in Python?How can you print a variable name in python?

然而,那里的答案说你不应该这样做。

你告诉它打印c的完整内容,其中包含确实

的对象a和b
[1, 2, 3]
[2, 3, 4]

您说要打印字符串'a'

要做到这一点,你必须定义

c = ['a', 'b']

完全不同。

答案 2 :(得分:0)

你正在打印。你的名单c实际上是

C = [[1,2,3], [2,3,4]]

如果您在打印之前修改了c。将显示a中的新值。当python通过引用传递时,c包含对

的引用