Python 从数字列表中提取并制作一个新的数字
问题是: 给定一个整数列表,使第一个和最后一个整数相加,结果将是新列表的第一个整数,第二个和第二个到最后一个整数相加,结果将是新列表的第二个整数,依此类推。如果您的列表为奇数,请将中心号码保留在原始列表中 我有两个问题。我不知道如何让我的代码在获取第一个和最后一个值、将其添加到新列表中并一直运行到中间的同时保持迭代。还有,如果它是奇数,我如何让它迭代并停在中间值 以下是我目前的代码:Python 从数字列表中提取并制作一个新的数字,python,python-3.x,Python,Python 3.x,问题是: 给定一个整数列表,使第一个和最后一个整数相加,结果将是新列表的第一个整数,第二个和第二个到最后一个整数相加,结果将是新列表的第二个整数,依此类推。如果您的列表为奇数,请将中心号码保留在原始列表中 我有两个问题。我不知道如何让我的代码在获取第一个和最后一个值、将其添加到新列表中并一直运行到中间的同时保持迭代。还有,如果它是奇数,我如何让它迭代并停在中间值 以下是我目前的代码: myList = [1,2,3,4,5,6] newList = [] def switch(myList):
myList = [1,2,3,4,5,6]
newList = []
def switch(myList):
for i in range(len(myList)):
if len(myList) % 2 == 0:
firstPart = newList+myList[0:+1]
secondPart = myList[len(myList)-1:len(myList)+1]
thirdPart = firstPart + secondPart
return thirdPart
else:
if len(myList) % 2 == 1:
myList[:n/2]提取列表的第一部分[1,2,3]反转(myList)反转初始列表[6,5,4,3,2,1],然后使用[:n/2]截断 然后,可以同时使用izip在两个列表上进行迭代,这使得您可以轻松地执行您想要执行的操作: e、 izip([1,2,3],[6,5,4])=>e,f=(1,6),然后(2,5)然后(3,4) 对于奇数长度,我添加了一个特殊情况:
if len(myList)%2==1:
new_list.append(myList[n/2+1])
myList[:n/2]提取列表的第一部分[1,2,3]反转(myList)反转初始列表[6,5,4,3,2,1],然后使用[:n/2]截断 然后,可以同时使用izip在两个列表上进行迭代,这使得您可以轻松地执行您想要执行的操作: e、 izip([1,2,3],[6,5,4])=>e,f=(1,6),然后(2,5)然后(3,4) 对于奇数长度,我添加了一个特殊情况:
if len(myList)%2==1:
new_list.append(myList[n/2+1])
更新:在经历了所有的压缩、求和、映射、切片和反转之后,这个解决方案出乎意料地简单,实际上:
def switch(my_list):
new_list = my_list[:] # make a copy not to harm the original
for i in range(len(my_list)//2): # at the appropriate index ...
new_list[i] += new_list.pop() # ... add the element popped from the end
return new_list
>>> switch([1,1,1,1])
[2, 2]
>>> switch([1,1,1,1,1])
[2, 2, 1]
更新:在经历了所有的压缩、求和、映射、切片和反转之后,这个解决方案出乎意料地简单,实际上:
def switch(my_list):
new_list = my_list[:] # make a copy not to harm the original
for i in range(len(my_list)//2): # at the appropriate index ...
new_list[i] += new_list.pop() # ... add the element popped from the end
return new_list
>>> switch([1,1,1,1])
[2, 2]
>>> switch([1,1,1,1,1])
[2, 2, 1]
看起来很热,但是它是如何解决偶数/奇数需求的?你能给我解释一下它到底是做什么的吗?我想@schwobasegll提出的下面的解决方案是最优雅和最具pythonic的。看起来很热,但是它是如何解决偶数/奇数需求的呢?你能给我解释一下它到底是做什么的吗?我认为@schwobasegll下面提出的解决方案是最优雅和最具python风格的。你可能希望咨询一个简化任务的好方法。你可能希望咨询一个简化任务的好方法。我使用的是python 3,但是我会试试。我使用的是Python3,但我会试试。