Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向列表的元素添加空格_Python_List_Python 3.x - Fatal编程技术网

Python 向列表的元素添加空格

Python 向列表的元素添加空格,python,list,python-3.x,Python,List,Python 3.x,我已经为此挣扎了一段时间。我有一个带有子列表的列表,我想在子列表的每个元素之前添加一个空格元素。例如: lin = [[2], [3], [2], [2, 2], [2]] 结果应该是: lin = [[' ',2], [' ',3], [' ',2], [' ',2, ' ',2], [' ',2]] 我尝试过这样做: for a in lin: for e in a: e = (' ') , e 但是我得到了完全相同的列表,没有任何改动我想你实际上是指蒂格霍克

我已经为此挣扎了一段时间。我有一个带有子列表的列表,我想在子列表的每个元素之前添加一个空格元素。例如:

lin = [[2], [3], [2], [2, 2], [2]]
结果应该是:

lin = [[' ',2], [' ',3], [' ',2], [' ',2, ' ',2], [' ',2]]
我尝试过这样做:

for a in lin:
    for e in a:
        e = (' ') , e 

但是我得到了完全相同的列表,没有任何改动

我想你实际上是指蒂格霍克的评论

您的问题是
e=(“”),e
只是将
e
的值(原来是嵌套列表中的每个值)覆盖到包含空格和原始值的元组中。这实际上不会改变列表中的任何内容,只会改变
e
最初指向的内容

您可以这样做:

>>> lin = [[2], [3], [2], [2, 2], [2]]
>>> for a in lin:
        for i in range(len(a)-1,-1,-1):
            a.insert(i, ' ')


>>> lin
[[' ', 2], [' ', 3], [' ', 2], [' ', 2, ' ', 2], [' ', 2]]
注意内部循环:
对于范围内的i(len(a)-1,-1,-1):
这样做有两个原因:

  • 您不希望实际循环通过
    a
    ,因为您将改变
    a
  • 您需要从最高的索引开始,因为如果从0开始,则它前面的其余项的索引将更改

  • 我想你实际上是指蒂格霍克的评论

    您的问题是
    e=(“”),e
    只是将
    e
    的值(原来是嵌套列表中的每个值)覆盖到包含空格和原始值的元组中。这实际上不会改变列表中的任何内容,只会改变
    e
    最初指向的内容

    您可以这样做:

    >>> lin = [[2], [3], [2], [2, 2], [2]]
    >>> for a in lin:
            for i in range(len(a)-1,-1,-1):
                a.insert(i, ' ')
    
    
    >>> lin
    [[' ', 2], [' ', 3], [' ', 2], [' ', 2, ' ', 2], [' ', 2]]
    
    注意内部循环:
    对于范围内的i(len(a)-1,-1,-1):
    这样做有两个原因:

  • 您不希望实际循环通过
    a
    ,因为您将改变
    a
  • 您需要从最高的索引开始,因为如果从0开始,则它前面的其余项的索引将更改

  • 您可以使用列表理解和
    chain.from\u iterable
    from


    您可以使用列表理解和
    chain.from\u iterable
    from


    一个简洁的功能解决方案,只使用内置函数

    lin = [[2], [3], [2], [2, 2], [2]]
    
    add_spaces = lambda l: [i for x in zip(' '*len(l), l) for i in x]
    new_list = [add_spaces(l) for l in lin]
    
    输出:

    >>> print new_list
    [[' ', 2], [' ', 3], [' ', 2], [' ', 2, ' ', 2], [' ', 2]]
    

    一个简洁的功能解决方案,只使用内置函数

    lin = [[2], [3], [2], [2, 2], [2]]
    
    add_spaces = lambda l: [i for x in zip(' '*len(l), l) for i in x]
    new_list = [add_spaces(l) for l in lin]
    
    输出:

    >>> print new_list
    [[' ', 2], [' ', 3], [' ', 2], [' ', 2, ' ', 2], [' ', 2]]
    

    你的意思是
    lin=[['',2],'',3],'',2],'',2],'',2].
    ?你的意思是
    lin=['',2],'',3],'',2],'',2],'','',2].
    ?哎呀,没有注意到里面的
    [2,2]
    元素。干得好哦。名字粘在一起了。非常感谢你的帮助和解释!是的,我想说的是蒂格霍克说的话。再次感谢,我真的很感激。哎呀,我没有注意到里面的
    [2,2]
    元素。干得好哦。名字粘在一起了。非常感谢你的帮助和解释!是的,我想说的是蒂格霍克说的话。再次感谢,我真的很感激。moar功能<代码>lambda l:list(itertools.chain.from_iterable(zip(itertools.repeat(“”),l))(我非常高兴它能工作,因为我没有先运行repr就将它组合起来了…)moar函数<代码>lambda l:list(itertools.chain.from_iterable(zip(itertools.repeat(“”),l))(我很高兴它能工作,因为我没有先运行我的报告就将它组合起来了…)