簡體   English   中英

如何打印出變量名而不是值?

[英]How to print out variable name instead of value?

如果我有一個變量列表並且每個變量都分配給一個方程式,我如何從列表中打印變量本身而不是方程式的結果

例如:

x = 1 + 1
y = 2 + 2
z = 3 + 3

list = [x, y, z]

print(list[0])
print(list[1])
print(list[2])

應該打印出來:

x
y
z

代替:

2
4
6

print() 給你一個列表 [0] 或列表 [1] 或列表 [2] 的值 你在你的應用程序開始時給了他們值 2,4,6

x = 1 + 1
y = 2 + 2
z = 3 + 3

如果你想得到 x,y,z 試試這個:

x = "x"
y = "y"
z = "z"

在這種情況下,您需要將列表更改為字符串,否則它會認為它是一個變量並打印分配給它的值。 要解決此問題,請將第 5 行更改為:list = ["x","y","z"] -> 這樣它將打印出字符串,而不是變量 x 的值

這里的答案顯然是正確的,但也許他們沒有抓住重點。 我假設您希望能夠顯示/使用名稱和值,例如打印類似“x、y、z 的總和為 12”之類的內容。

如果是這種情況,您可能希望使用 Python 的內置名稱空間,但最簡單的方法是使用字典,其中您的名稱將是鍵,您的值……好吧,值:

my_dict = {}
my_dict['x'] = 1 + 1
my_dict['y'] = 2 + 2
my_dict['z'] = 3 + 3

','.join(my_dict.keys()) #'x,y,z'
sum(my_dict.values()) # 12

從你的第一個問題開始,我不太明白你需要什么

我認為這可以工作:

def dna_content(seq):
    A = ["A", (seq.count("A") / len(seq)) * 100]

    T = ["T", (seq.count("T") / len(seq)) * 100]
    G = ["G", (seq.count("G") / len(seq)) * 100]
    C = ["C", (seq.count("C") / len(seq)) * 100]
    bases = [A, T, G, C]
    for i in bases:
        print(str(i[0]) + " content is: " + str(i[1]))

而且......我找不到如何通過它的值訪問變量的名稱

更新:

嘗試這個:

x = 1 + 1
y = 2 + 2
z = 3 + 3
list = ["x", "y", "z"]


for i in list:
    print(i, globals()[i])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM