我有这段代码:
a = "aa"
b = 1
c = { "b":2 }
d = [3,"c"]
e = (4,5)
letters = [a, b, c, d, e]
我想用它做点什么,这会把它们清空。没有失去他们的类型。
这样的事情:
>>EmptyVars(letters)
['',0,{},[],()]
任何提示?
答案 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])