我有变量print(fruit)
,当我13
时,我得到'fruit'
。
如何打印变量名称以便打印出print('fruit')
?我不想使用{"paths": [ "/var/www/logs/access.log" ], "fields": { "type": "apache", "virtualhost": "zzz.gov.mv" }, "dead time": "24h" }
,因为我将使用函数。
答案 0 :(得分:2)
你要找的是字典。
food = {'fruit':13, 'vegetable':15}
for item in food:
print(item, food[item])
结果:
fruit 13
vegetable 15
答案 1 :(得分:0)
只需print
next
字典中的locals
键,即可获得所需值。 13以下是值:
print next(k for k, v in locals().items() if v == 13) # get variable that is equal to 13
答案 2 :(得分:0)
您可以使用dictionary和for
- 循环iterating through it来实现类似的行为:
#!/usr/bin/env python3
# coding: utf-8
# define a dict with sample data
d = {'fruit': 13}
# print keys and values of sample dict
for key, val in d.items():
print(key, val)
输出如下:
fruit 13
答案 3 :(得分:0)
你可以这样做。
print [n for n in globals() if globals()[n] is fruit][0]
>>> fruit = 13
>>> n = None
>>> print [n for n in globals() if globals()[n] is fruit][0]
fruit
>>> b = None
>>> b = [n for n in globals() if globals()[n] is fruit][0]
>>> b
'fruit'
>>> type(b)
<type 'str'>
>>>
如果您喜欢
,也可以在命名空间中的变量中创建一个对象b = {globals()[n]: n for n in globals() if globals()[n] is fruit}
然后你可以通过该对象的值获取名称文本
print b[fruit]
输出:
>>> b = {globals()[n]: n for n in globals() if globals()[n] is fruit}
>>> b
{13: 'fruit'}
>>> fruit
13
>>> b[fruit]
'fruit'
答案 4 :(得分:0)
虽然有办法做到这一点,(我个人认为字典是你想要的)我想解释为什么许多人都在跟它说话,因为从表面上看,它看起来很漂亮合理的任务。
但是,在Python(以及我能想到的大多数其他语言)中,这是如此困难的原因。原因在于,在大多数情况下,人们可以将变量名称视为简写,以实现真正的基础含义。大多数语言的设计理念是更改速记不应更改代码的输出。
假设你有这样的代码:
fruit = 10
print('Amount of fruit', fruit)
我们可以为fruit
- fruit_quantity
,num_fruits
等选择一百万个名称,但是变量代表的一个基本概念,即:水果数量。因此,如果您需要数字标签,请使用基础概念的名称。