2013-06-28 52 views
0

我有兩個列表:插入值,以嵌套的列表

nums = ['-3.00', '-3.50', '-4.00'] 
values = [['1.9', ' 2.05'], ['1.97', ' 2.02'], ['2.03', ' 1.95']] 

對於每一個嵌套列表中values我想從nums插入數字。

預期效果:

[['-3.00', '1.9', ' 2.05'], ['-3.50', '1.97', ' 2.02'], ['-4.00', '2.03', ' 1.95']] 

我想出了:

[[row.insert(0, n) for n in nums] for row in values] 

我不知道爲什麼這是行不通的。

回答

3

它不起作用的原因是insert方法返回None

你想這樣的:

[[n] + v for n, v in zip(nums, values) ] 
+0

沒錯,謝謝!你能想到爲什麼我的代碼搞砸了嗎? – nutship

+0

添加了原因。嘗試'打印nums.insert(0,3)'。希望能幫助到你! – jh314

+2

@shipship,您的代碼確實將'values'修改爲一個副作用,但是您將每個數字的_all_都插入到每個值中,因爲您嵌套了循環而不是使用zip。使用列表解析來避免副作用是不好的做法。 –