我正在学习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语句中识别底层数据结构?
答案 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'>