小编Mik*_*T12的帖子

Pythonic方式返回函数中初始化的列表?

我正在编写一个函数来解析文件并构建一个列表.我可以想到两种方法来做到这一点,我想知道其中一个是否被认为更像Pythonic.

在第一种方法中,函数返回列表.

def initList(fname):
   mylist = []
   # process fname & build list
   return mylist

if __name__ == "__main__":
   list_a = initList('someFile')
Run Code Online (Sandbox Code Playgroud)

在第二种方式中,知道列表是可变对象,因此如果作为参数传递给函数,则函数中所做的任何更改都会更改实际列表,这样做:

def initList(fname, mylist):
   # process fname & build list

if __name__ == "__main__":
   list_a = []
   initList('someFile', list_a)
Run Code Online (Sandbox Code Playgroud)

我倾向于第一种方式,因为它使读者清楚该函数正在初始化列表.但是第二种方式在某种意义上似乎更为通用,如果initList()使用mylist.append()调用添加到列表中,则可以重用它来将元素添加到已存在的列表中,而第一种方法则不能.

关于最佳实践在这里会有什么共识?

python

0
推荐指数
1
解决办法
53
查看次数

标签 统计

python ×1