【问题标题】:Nested List to List嵌套列表到列表
【发布时间】:2013-04-10 06:53:48
【问题描述】:

我将如何制作一个类似的列表

My_list = [['Item1', 'item2'], ['shark', 'dog', 'cat']]

到如下两个列表:

My_list = ['Item1', 'item2']
My_list2 = ['shark', 'dog', 'cat']

另外,如果我不知道列表中有多少个列表,我该怎么做?

【问题讨论】:

  • My_list = ['Item1', 'item2']['shark', 'dog', 'cat']到底是什么意思?这不是一个有效的表达式。
  • 如果你想要My_list = ['Item1', 'item2', 'shark', 'dog', 'cat'],那么答案是:sum(My_list,[])list(itertools.chain.from_iterable(My_list))。另请参阅this 相关问题。
  • 抱歉,修改后的问题有点混乱,我问的是什么,哈哈。
  • 请使用小写的变量名

标签: python list nested


【解决方案1】:

你可以使用序列解包:

My_list, My_list2 = My_list

如果My_list 可以包含更多元素并且您想要执行以下操作:

for elem in My_list:
    create_variable('My_listn', elem)

这在一般情况下不可能。 Python 不允许在运行时创建本地变量(至少不可靠)。

【讨论】:

  • 需要导入create_variable函数吗?它说全局名称“create_variable”未定义
  • @VEDYL 不,那是伪代码。我想说的是你不能在运行时创建变量。您可以使用 globals()['variable_name'] = value 创建全局变量,但这不适用于函数内的变量。
【解决方案2】:

假设My_list 真的是这样的:

My_list = [['Item1', 'item2'], ['shark', 'dog', 'cat']]

而且你真的想要你所要求的,你可以这样做:

My_list2 = My_list[1]
My_list = My_List[0]

或者,正如其他人所建议的那样,您可以使用列表解包:

My_list, My_list2 = My_list

【讨论】:

    【解决方案3】:
    >>> My_list = [['Item1', 'item2'], ['shark', 'dog', 'cat']]
    >>> l1, l2 = My_list
    >>> l1
    ['Item1', 'item2']
    >>> l2
    ['shark', 'dog', 'cat']
    

    【讨论】:

      【解决方案4】:
      My_list, My_list2 = My_list[0], My_list[1]
      

      【讨论】:

      • 干杯,只是好奇,如果我不知道列表有多长,我该怎么做。所以说列表是 [['Item1', 'item2'], ['shark', 'dog', 'cat'][' added', 'silly', 'cant', 'think']] 但我们没有'不知道列表中有 3 个列表
      • 你不能有未知数量的局部变量 - 在这种情况下你使用列表(你已经有)
      【解决方案5】:
      >>> My_list = ['Item1', 'item2'],['shark', 'dog', 'cat']
      >>> My_list
      (['Item1', 'item2'], ['shark', 'dog', 'cat'])
      >>> len(My_list)
      2
      
      >>> My_list[0]
      ['Item1', 'item2']
      >>> My_list[1]
      ['shark', 'dog', 'cat']
      
      >>> My_list[2]
      Traceback (most recent call last):
        File "<pyshell#34>", line 1, in <module>
          My_list[2]
       IndexError: tuple index out of range
      
      >>> My_list, My_list2 = My_list
      >>> My_list
      ['Item1', 'item2']
      >>> My_list2
      ['shark', 'dog', 'cat']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多