更多" pythonic"使用str()而不是""?

时间:2014-07-23 20:07:52

标签: python

正如大多数Python用户所知,有两种方法可以将x创建为空字符串或列表(或者,对于整数,0)。你可以这样做:

x = str()
y = list()
z = int()

或者,你可以这样做:

x = ""
y = []
z = 0

我知道这些是语义上相同的陈述,但是比其他陈述更受鼓励(在某些情况下鼓励map()超过for x in y...)?

3 个答案:

答案 0 :(得分:2)

我认为这种做法更为常见,更具嗜剧性

x = ""
y = []
z = 0

它更明确,因为您不希望读者知道某个类型的默认值。

答案 1 :(得分:2)

我喜欢靠咒语生活"说出你的意思"。如果您想要一个空字符串,请使用""。如果您需要0,请使用0

函数表单对于获取任意内置函数的空值非常有用:

d = defaultdict(list)

作为的好处,当您使用文字时,它也稍微快一点,因为python不需要查找intstr,{{1这可能是阴影。


值得指出的是famous pythonistas会不同意我的看法。

答案 2 :(得分:2)

str([object])返回对象的可打印表示。

list([iterable])返回基于可迭代的列表

int([object])将字符串或数字转换为整数。

如果没有传递参数,则每个函数都返回一个默认值。我不确定您为什么要使用这些功能而不是""[]0