String 使用列表理解,在包含字符串的列表中插入递增整数

String 使用列表理解,在包含字符串的列表中插入递增整数,string,python-3.x,list,insert,list-comprehension,String,Python 3.x,List,Insert,List Comprehension,如何将此for循环转换为列表理解 在: 输出: 这取决于您是想要一个新列表还是要对旧列表进行修改: >>> y = [['a'],['b']] >>> [ [str(i)]+y[i] for i in range(len(y))] [['0', 'a'], ['1', 'b']] >>> y [['a'], ['b']] [l.insert0,stri代表i,l在文档中] [l.insert0、stri或l表示文件中的i、l] [[stri

如何将此for循环转换为列表理解

在:

输出:


这取决于您是想要一个新列表还是要对旧列表进行修改:

>>> y = [['a'],['b']]
>>> [ [str(i)]+y[i] for i in range(len(y))]
[['0', 'a'], ['1', 'b']]
>>> y
[['a'], ['b']]
[l.insert0,stri代表i,l在文档中] [l.insert0、stri或l表示文件中的i、l] [[stri]+文件[i]用于rangelendocs中的i] 这将改变旧列表,但仅作为副作用,“返回”列表是错误的:

>>> x = [['a'],['b']]
>>> [ l.insert(0,str(i)) for i,l in enumerate(x)]
[None, None]
>>> x
[['0', 'a'], ['1', 'b']]
这可以通过以下方式解决:

>>> x = [['a'],['b']]
>>> [ l.insert(0,str(i)) or l for i,l in enumerate(x)]
[['0', 'a'], ['1', 'b']]
>>> x
[['0', 'a'], ['1', 'b']]
>>>
或者,您可以生成新列表而无需更改旧列表:

>>> y = [['a'],['b']]
>>> [ [str(i)]+y[i] for i in range(len(y))]
[['0', 'a'], ['1', 'b']]
>>> y
[['a'], ['b']]

啊,我确实设法想出了你们那里的第一个,但我担心它会对我的计划产生不利影响。我也观察到了即时结果:[无,无],但当看到x发生了变化时,我感到困惑,我在这里问了我的问题。我不想让这种变异出现在我的程序中,因为simple似乎更好,所以我会选择第三个选项设置,y=[[stri]+y[I]代表rangeleny中的I],这样我就不会有不必要的列表阻塞RAM——我的实际数据集中有数百万行。谢谢
>>> y = [['a'],['b']]
>>> [ [str(i)]+y[i] for i in range(len(y))]
[['0', 'a'], ['1', 'b']]
>>> y
[['a'], ['b']]