Python 是不是更多;蟒蛇的;使用str()而不是“引用”&引用;?

Python 是不是更多;蟒蛇的;使用str()而不是“引用”&引用;?,python,Python,正如大多数Python用户所知,有两种方法可以将x创建为空字符串或列表(或者,对于整数,为0)。你可以做: x = str() y = list() z = int() x = "" y = [] z = 0 或者,你可以: x = str() y = list() z = int() x = "" y = [] z = 0 我知道这些语句在语义上是相同的,但是其中一个比另一个更受鼓励(在某些情况下,map()比for x in y.)更受鼓励?我认为这样做更常见,也更像python x

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

x = str()
y = list()
z = int()
x = ""
y = []
z = 0
或者,你可以:

x = str()
y = list()
z = int()
x = ""
y = []
z = 0

我知道这些语句在语义上是相同的,但是其中一个比另一个更受鼓励(在某些情况下,
map()
for x in y.
)更受鼓励?

我认为这样做更常见,也更像python

x = ""
y = []
z = 0

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

我认为它更常见,也更像python

x = ""
y = []
z = 0

它更明确,因为你不希望读者知道类型的默认值是什么。

我喜欢按照“说出你的意思”这句格言生活。如果需要空字符串,请使用
”。如果需要
0
,请使用
0

函数形式对于获取任意内置项的空值非常有用:

d = defaultdict(list)
另一个好处是,当您使用文本时,它也稍微快一些,因为python不需要查找
int
str
列表
,而这些都可以隐藏



值得指出的是,有些人会不同意我的观点。

我喜欢按照“说出你的意思”这句咒语生活。如果需要空字符串,请使用
”。如果需要
0
,请使用
0

函数形式对于获取任意内置项的空值非常有用:

d = defaultdict(list)
另一个好处是,当您使用文本时,它也稍微快一些,因为python不需要查找
int
str
列表
,而这些都可以隐藏


值得指出的是,有些人会不同意我的观点。

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

list([iterable])
返回一个基于iterable的列表

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

如果未传递任何参数,这些函数中的每个函数都会返回默认值。我不知道为什么要使用这些函数而不是
[]
0
str([object])
返回对象的可打印表示形式

list([iterable])
返回一个基于iterable的列表

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


如果未传递任何参数,这些函数中的每个函数都会返回默认值。我不知道为什么要使用这些函数而不是
[]
0

“因为在大多数情况下,map()被鼓励用于x in y”它是not@vaultah不是吗?我可以发誓是的。在这里的某个地方甚至有一个问题@啊,啊,没关系。这个答案似乎告诉我们陪审团还没结束。。。“在大多数情况下,对于x/y,鼓励使用map()”这是not@vaultah不是吗?我可以发誓是的。在这里的某个地方甚至有一个问题@啊,啊,没关系。这个答案似乎告诉我们陪审团还没结束。。。我倾向于同意这个答案,但原因不同:这些函数最初是用来更改变量类型的函数(即,可以对字符串应用
int()
list()
),但是出于另一个原因:这些函数最初是用来更改变量类型的(即,您可以对字符串应用
int()
list()
)。哇,从来都不知道
defaultdict()
位。我想知道如果你自己使用它会发生什么…@KnightOfNi:它会变成一个二维的defaultdict:
defaultdict(defaultdict)
。但是,如果您试图查找不存在的键
d[缺少][键]
,则最终会出现一个键错误。但是,作业确实有效,例如
d[new][key]=1337
。顺便说一句:这样一个任意的内置函数正式称为默认值factory@KnightOfNi--无法在自身上使用defaultdict,因为默认\u工厂传递了0个参数。您可以这样做:
factory=lambda:defaultdict(工厂)
,然后
d=defaultdict(工厂)
;-)哇,从来都不知道
defaultdict()
位。我想知道如果你自己使用它会发生什么…@KnightOfNi:它会变成一个二维的defaultdict:
defaultdict(defaultdict)
。但是,如果您试图查找不存在的键
d[缺少][键]
,则最终会出现一个键错误。但是,作业确实有效,例如
d[new][key]=1337
。顺便说一句:这样一个任意的内置函数正式称为默认值factory@KnightOfNi--无法在自身上使用defaultdict,因为默认\u工厂传递了0个参数。您可以这样做:
factory=lambda:defaultdict(工厂)
,然后
d=defaultdict(工厂)
;-)我倾向于同意,请看我对@Bartosz答案的评论。有一些伟大的蟒蛇学家不同意我们的观点,至少在容器类型:样式偏好。我可以尊重这一点:)我倾向于同意,请看我对@Bartosz答案的评论。有一些伟大的蟒蛇学家至少在容器类型方面不同意我们的观点:风格偏好。我可以尊重这一点:)