从print语句中识别基础数据集

时间:2016-01-04 12:37:01

标签: python

我正在学习Python,并希望从print语句的显示中识别数据结构。我写了以下代码:

set1={1,2,3,3}
print set1
tup1=(1,2,3,3)
print tup1
list1=[1,2,3,3]
print list1
dict1={1:1,2:2,3:3,3:3}
print dict1

输出是:

set([1, 2, 3])
(1, 2, 3, 3)
[1, 2, 3, 3]
{1: 1, 2: 2, 3: 3}

由此我推断set1是一个python集,tup1是一个python元组,list1是一个python列表,dict1是一个python字典。

我们能否以通用的方式使用这个类比来从print语句中识别底层数据结构?

2 个答案:

答案 0 :(得分:0)

我们可以使用以下语句之一来查找变量的类型:

print type(set1)
print(set1.__class__.__name__)

感谢Virendrao和Padraic Cunningham提供答案

答案 1 :(得分:0)

您正在查看repr() function的输出。由对象本身来提供有意义的object.__repr__() method;内置类型生成有效的Python语法,可以让您重现相同的值,但对于Python类,repr()输出并不总是有用:

>>> class Foo(object):
...     def __init__(self, bar):
...         self.bar = bar
...
>>> print Foo(42)
<__main__.Foo object at 0x102312990>

这只会告诉您实例的实例类型,而不是重现相同值的方式。

如果您只想知道类型,请使用type() function

>>> type(Foo(42))
<class '__main__.Foo'>
>>> type({1, 2, 3})
<type 'set'>