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
我想你实际上是指蒂格霍克的评论 您的问题是
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
您可以使用列表理解和
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))(我很高兴它能工作,因为我没有先运行我的报告就将它组合起来了…)