使用给定字符串引入新变量

时间:2015-10-19 19:07:46

标签: python list variables

我有一个名单my_names = ["A","B","C"] 我有一个函数,可以从列表中获取每个名称,并返回该名称的几个信息列表。

def my_function(name):
    return list1, list2, list3

每个名称list1, list2, list3都不同。

我想编写一个不需要任何用户输入的函数,但会返回一个包含3个列表的列表。

def my_function():
    for name in my_list:
        # Part I don't know how to do
        name_list = list1, list2, list3
        # A_list for "A", B_list for "B", C_list for "C"

    return A_list, B_list, C_list

我唯一不知道的是如何让python根据my_list中的名称引入新的空列表

2 个答案:

答案 0 :(得分:2)

字典是最好的,但可以有一个列表列表。只需创建一个主列表:name_list = []然后将每个列表附加到它:name_list.append(list1)等。然后使用其索引引用每个列表,然后使用二级索引引用该列表中的元素。例如,

def my_function():
    for name in my_list:
        name_list = []
        name_list.append(list1)
        name_list.append(list2)
        name_list.append(list3)
    return name_list

然后,如果你想从返回的函数访问第一个列表中的第二个元素,你可以这样做:

name_list[0][1]

如果不了解更多关于您的问题的话,很难说更多,但这会有效,但这并不是最佳选择。

答案 1 :(得分:0)

您可以使用n个子列表创建嵌套列表,其中n是任意给定数量的列表

n = 3
nested_list = [[]] * n
# returns [[],[],[]]
#function that takes n, n=3
def create_nested_list(n):
      nested_list = [[]] * n
      return nested_list
nested list = create_nested_list(n)

您可以通过索引在嵌套列表的列表中追加项目,对于实例,nested_list [0] = [" A"]会追加数字" A"到第一个子列表,nested_list [1] = [" B"]到第二个和nested_list [2] = [" C"]到第三个子列表,所以nested_list = [[& #34; A"],[" B"],[" C"]]