清空变量而不破坏它

时间:2014-01-05 22:05:40

标签: python variables

我有这段代码:

a = "aa"
b = 1
c = { "b":2 }
d = [3,"c"]
e = (4,5)
letters = [a, b, c, d, e]

我想用它做点什么,这会把它们清空。没有失去他们的类型。

这样的事情:

>>EmptyVars(letters)
['',0,{},[],()]

任何提示?

3 个答案:

答案 0 :(得分:17)

这样做:

def EmptyVar(lst):
    return [type(i)() for i in lst]

type()为每个值生成类型对象,在调用时会生成一个“空”的新值。

演示:

>>> a = "aa"
>>> b = 1
>>> c = { "b":2 }
>>> d = [3,"c"]
>>> e = (4,5)
>>> letters = [a, b, c, d, e]
>>> def EmptyVar(lst):
...     return [type(i)() for i in lst]
... 
>>> EmptyVar(letters)
['', 0, {}, [], ()]

答案 1 :(得分:0)

类似的方式,只有type(i)()替换为i.__class__()

a = "aa"
b = 1
c = {"b": 2}
d = [3, "c"]
e = (4, 5)

letters = [a, b, c, d, e]


def empty_var(lst):
    return [i.__class__() for i in lst]


print(empty_var(letters))

['', 0, {}, [], ()]

答案 2 :(得分:0)

我们可以借助 type() 函数来做到这一点,该函数通常用于在 Python 中显示任何对象或变量的类型。 这是解决方案:

a = "aa"
b = 1
c = {"b" : 2}
d = [3, "c"]
e = (4,5)
letters = [a,b,c,d,e]
print([type(i)() for i in letters])