首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将多个列表作为参数,而不是在dict中返回它们,还有更好的方法(python3)吗?

将多个列表作为参数,而不是在dict中返回它们,还有更好的方法(python3)吗?
EN

Stack Overflow用户
提问于 2015-06-24 13:20:48
回答 2查看 62关注 0票数 0

我有一个函数,需要返回在python3.x中创建的两个列表。与其返回列表,我更愿意将这两个列表作为参数,并在这些列表中添加我需要的任何信息。我的另一种方法是返回带有两个列表的字典,然后在函数返回后使用键获取列表。这两种方法都需要在函数调用之前/之后进行准备,所以我想知道是否有更好的方法返回列表,如果没有,这两种方法中哪一种更好。

示例代码:

代码语言:javascript
运行
复制
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']

使用元组的编辑方法:

代码语言:javascript
运行
复制
def method3():
    *create and do something with lists*
    return (list1, list2)

get_lists_method3():
    list1, list2 = method3()
EN

Stack Overflow用户

发布于 2015-06-24 13:38:51

您想要使用元组

代码语言:javascript
运行
复制
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的人,如果在调用函数时没有提供参数,则可以为参数指定默认值。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31027773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档