我有一个函数,需要返回在python3.x中创建的两个列表。与其返回列表,我更愿意将这两个列表作为参数,并在这些列表中添加我需要的任何信息。我的另一种方法是返回带有两个列表的字典,然后在函数返回后使用键获取列表。这两种方法都需要在函数调用之前/之后进行准备,所以我想知道是否有更好的方法返回列表,如果没有,这两种方法中哪一种更好。
示例代码:
def method1(list1, list2):
*do something to lists*
def method2():
*do something to lists*
return({'list1': list1, 'list2': list2})
get_lists_method1():
list1 = []
list2 = []
method1()
get_lists_method2():
list_dict = method1()
list1 = list_dict['list1']
list2 = list_dict['list2']使用元组的编辑方法:
def method3():
*create and do something with lists*
return (list1, list2)
get_lists_method3():
list1, list2 = method3()发布于 2015-06-24 13:36:04
我会用元组作业。因为这两个返回值一起返回,所以只返回(list1,list2)
# returns a tuple of two lists
def method1(list1, list2):
list1.append(4)
list2.append(8)
return (list1, list2)
# the lists are result[0] and result[1]
result = method1([1, 2, 3], [2, 4, 6])
for l in result:
print l
# more useful: tuple assignment
(list1, list2) = method1([1, 2, 3], [2, 4, 6])
print list1
print list2发布于 2015-06-24 13:38:51
您想要使用元组
def method1(lst1=[], lst2=[]):
# do stuff to lst1 and lst2
lst1.append("Hello, ")
lst2.append("world!")
return (lst1, lst2)
def method2(lst1=[], lst2=[]):
# do stuff to lst1 and lst2
lst1.append("lst1")
lst2.append("lst2")
return (lst1, lst2)
def main():
m1_result = method1() # no arguments provided, so defaults are used
m2_result = method2(["List 1"], ["List 2"])
print(m1_result)
print(m2_result)
print(m1_result[0])
print(m1_result[1])
print(m2_result[0])
print(m2_result[1])
main()此外,假设您是编写方法1和方法2的人,如果在调用函数时没有提供参数,则可以为参数指定默认值。
https://stackoverflow.com/questions/31027773
复制相似问题