[英]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.