Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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 如何在单行for循环中使用list*I_Python_List_For Loop_Lambda - Fatal编程技术网

Python 如何在单行for循环中使用list*I

Python 如何在单行for循环中使用list*I,python,list,for-loop,lambda,Python,List,For Loop,Lambda,当前代码: res = [] for i in range(0,len(nums),2): res.extend([nums[i+1]]*nums[i]) return res 预期: res = [([nums[i+1]]*nums[i]) for i in range(0,len(nums),2)] 区别: 给出:[[1,1],[2,2,2]] 预期:[[1,1,2,2]]您实际上可以在列表理解中使用多个子句来实现这一点(假设您想要列表中nums[i]的nums[

当前代码:

res = []
for i in range(0,len(nums),2):
    res.extend([nums[i+1]]*nums[i])       
return res 
预期:

res = [([nums[i+1]]*nums[i]) for i in range(0,len(nums),2)]
区别:

给出:
[[1,1],[2,2,2]]


预期:
[[1,1,2,2]]

您实际上可以在列表理解中使用多个子句来实现这一点(假设您想要列表中
nums[i]
nums[i+1]
副本,并且希望列表是一维的):

在这里,我使用
表示范围内的I(0,len(nums),2)
,就像在原始代码中一样,使用
表示范围内的I(nums[I])
来模拟
*nums[I]
提供的重复


如果需要,您可以将其包含在另一个列表中。

列表理解相当于
res.append(…)
而不是
res.extend(…)
。除非您使用
list(itertools.chain(*[…])
或其他方法,否则无法完成
nums
nums = [2, 1, 3, 2]
res = [nums[i+1] for i in range(0,len(nums),2) for _ in range(nums[i])]
# [1, 1, 2, 2, 2]