Python主机如何识别和检查python3数据结构的内容?

2024-10-06 13:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的一个傻瓜。在

我经常发现自己在看一段代码,并试图找出数据结构中的内容,例如字典。事实上,我要做的第一件事就是“这是什么样的数据结构?”然后我试着找出它里面的东西。我看着一个变量,然后问“这是一个dict,还是一个list,还是一个multidict或其他我还不熟悉的东西?”。然后,“里面是什么?”。这需要花费大量的时间,我只是不知道我是否采取了正确的方法。在

所以,问题是,“Python主机如何找出某个数据结构是什么类型的,他们使用什么技术来查看这些数据结构中的内容?”在

我希望这个问题不要太笼统,但是我花了太多时间试图解决识别数据结构和查看数据结构内容的问题,更不用说编写有用的代码了。在

多谢了。在


Tags: 方法代码数据结构类型内容字典时间技术
3条回答

对变量使用type()函数将告诉您数据类型。例如:

inventory = {'cows': 4, 'pigs': 3, 'chickens': 5, 'bears': 2}
print(type(inventory))

将打印

<class 'dict'>

这意味着可变库存是一本字典。在

其他可能的数据类型有字符串的“str”、整数的“int”、浮点的“float”、元组的“tuple”和布尔值的“bool”。在

要查看集合中的内容,只需使用print()函数。在

^{pr2}$

将输出

['hunger', 'anger', 'burger']

而不是“这是什么?”,对于Python,最好问“这是做什么的?”或者“这是怎么用的?”。如果您看到某个被索引的东西,比如a['foo'],那么它是字典还是其他对象并不重要,而只是它可以通过字符串进行索引。在

这个想法通常被称为Duck类型,所以搜索它可能会给你一些有用的信息。快速搜索找到了这篇文章,它似乎与您相关: http://www.voidspace.org.uk/python/articles/duck_typing.shtml

我通常更关心一个类型是如何被/使用/而不是一个类型到底是什么。在

例如,如果一个对象与say:

foo["hey"] = "there"
for key, value in foo.items():
    print key, '->', value

然后我假设‘foo’是一种dict-like对象,除非我有理由进一步调查,否则这就是我所关心的。在

(注意:我仍然使用Python2.x语言,Python3.x中的语法略有不同,但重点仍然存在)

相关问题 更多 >