我有一個列表的列表,像這樣:名單,要輸出變量,而不是看重
a = [1, 2, 3]
b = [2, 3, 4]
c = []
append blah blah blah
我目前正在做的:
for x in c:
print(x)
,它是outputing [1,2 ,3]。我將如何得到它來輸出'a'呢?
我有一個列表的列表,像這樣:名單,要輸出變量,而不是看重
a = [1, 2, 3]
b = [2, 3, 4]
c = []
append blah blah blah
我目前正在做的:
for x in c:
print(x)
,它是outputing [1,2 ,3]。我將如何得到它來輸出'a'呢?
如果你想打印變量名看Can I print original variable's name in Python?和How can you print a variable name in python?
但是答案有說你不應該這樣做。
你告訴它打印ç其中包含的對象A和B確實
[1, 2, 3]
[2, 3, 4]
你說你要打印的字符串「A」
要的全部內容這樣做你必須定義
c = ['a', 'b']
這是完全不同的。
您正在打印一個。你的C組名單實際上
C = [[1,2,3], [2,3,4]]
是如果打印C之前修改。 a中的新值將顯示。由於python通過引用傳遞,而c包含對引用的一個
有幾種方法可以實現你想要的。第一個建議需要使用不同的數據結構。最後一個建議是用於演示目的ONLY,應該永遠不會被使用。
選項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]
我顯示的值,我的實際文件中,我追加第一名單的第二位。 – jgree157
改爲使用'['a','b']'。 – Daniel
使用字典:'{ 'A':A, 'B':B}' –