当前位置: 首页 > 面试题库 >

如何在python中将变量转换为字符串

岳研
2023-03-14
问题内容

我有类似的问题,但是我不知道这个词是什么

cat = 5
dog = 3
fish = 7
animals= [cat, dog, fish]
for animal in animals:
    # by animal name, I mean the variable name that's being used
    print(animal_name + str(animal))

它应该打印出来

cat5
dog3
fish7

所以我想知道是否有实际的方法或函数可以用来检索用作字符串的变量名。


问题答案:

您基本上是在问“我的代码如何发现对象的名称?”

def animal_name(animal):
    # here be dragons
    return some_string

cat = 5
print(animal_name(cat))  # prints "cat"

一个报价从弗雷德里克Lundh开发(在comp.lang.python)是 特别 适用于本案。

获得在门廊上找到的那只猫的名字的方法相同:猫(对象)本身无法告诉您它的名字,并且它并不在乎–因此,找出猫叫的唯一方法是询问您所有的邻居(命名空间),如果它们是他们的猫(对象)…

…。如果您发现它有很多名字,或者根本没有名字,请不要感到惊讶!

只是为了好玩,我尝试animal_name使用sysgc模块来实现,发现该邻域还通过多个名称调用了您亲切地称为“
cat”的对象,即文字整数5:

>>> cat, dog, fish = 5, 3, 7
>>> animal_name(cat)
['n_sequence_fields', 'ST_GID', 'cat', 'SIGTRAP', 'n_fields', 'EIO']
>>> animal_name(dog)
['SIGQUIT', 'ST_NLINK', 'n_unnamed_fields', 'dog', '_abc_negative_cache_version', 'ESRCH']
>>> animal_name(fish)
['E2BIG', '__plen', 'fish', 'ST_ATIME', '__egginsert', '_abc_negative_cache_version', 'SIGBUS', 'S_IRWXO']

对于足够的唯一对象,有时你 可以 得到一个唯一的名称:

>>> mantis_shrimp = 696969; animal_name(mantis_shrimp)
['mantis_shrimp']

因此,总而言之:

  • 简短的答案是: 您不能。
  • 长答案是: 嗯,实际上,您有时可以-至少在CPython实现中。 。
  • 正确的答案是: 使用a dict,正如其他人提到的那样。当您实际上需要使用名称<->对象关联时,这是最佳选择。


 类似资料:
  • 问题内容: 我有任何字符串。像“水牛” 我想将此字符串转换为某些变量名称,例如, 不仅是这个例子,我还想将任何输入字符串转换为某个变量名。我该怎么做(在python中)? 问题答案: 之后,你可以通过以下方式进行检查: 作为输出,你将看到:

  • 问题内容: 我一直在寻找解决方案,但找不到任何可行的方法。 我有一个名为的变量。 字符串被传递给函数。我想将函数内部的变量设置为某种值。我怎样才能做到这一点? (可以在函数中调用许多变量,因此我需要它动态地工作,而不是硬编码的语句。) 编辑:可能有更好的方法来做您要尝试做的事情。 我在JavaScript冒险的早期就曾问过这个问题。查看JavaScript对象的工作方式。 一个简单的介绍: 问题答

  • 问题内容: 我想将python变量名称转换为等效的字符串,如图所示。有什么想法吗? 问题答案: TL; DR:不可能。参见最后的“结论”。 在一个使用场景中,您可能需要此场景。我并不是在暗示没有更好的方法或实现相同的功能。 为了在调试,模式和其他类似情况下出现错误时“转储”任意词典列表,这将很有用。 需要的是该功能的反向功能: 它将以标识符名称(“变量”,“字典”等)作为参数,并返回包含标识符名称

  • 问题内容: 我有一个来自MySQL查询的元组,像这样: 我想将所有字符串元素转换为整数,然后将它们放回列表列表中: 我试图用它来实现它,eval但是还没有得到任何体面的结果。 问题答案: 是Python标准的内置函数,用于将字符串转换为整数值。你可以使用包含数字作为参数的字符串来调用它,然后返回转换为整数的数字: 上面的照片2。 如果你知道列表T1的结构(它仅包含列表,仅一个级别),则可以在Pyt

  • 问题内容: 如何在python中将字节字符串转换为int? 这样说: 我想出了一个聪明/愚蠢的方法: 我知道必须有内置的东西或在标准库中可以更简单地执行此操作… 这与转换可以使用int(xxx,16)的十六进制数字字符串不同,但是我想转换为实际字节值的字符串。 更新: 我有点喜欢James的回答,因为它不需要导入另一个模块,但是Greg的方法更快: 我的骇客方法: 进一步更新: 有人在评论中问导入

  • 本文向大家介绍如何在Python 3中将字符串转换为字节?,包括了如何在Python 3中将字符串转换为字节?的使用技巧和注意事项,需要的朋友参考一下 要在Python 3中将字符串转换为字节,可以使用string类中的函数。例如,