这就是我目前所拥有的。。。我怎么能不让我的countone从名单上消失然后让程序崩溃?或者有更干净的方法吗?另外,我应该使用range还是只在列表1中为I使用?还有没有一种方法可以将i设置为java中那样的初始值?编辑:忘了说我在为面试练习。。。可能应该避免使用内置函数。。。或者这可以接受吗?在
list1 = [1,2,3,4,5,6,7,8,9,10]
list3 = []
countone = 0
for i in range(0, len(list1)-1):
firstnum = list1[i+countone]
secondnum = list1[i+countone+1]
print firstnum, "+", secondnum
sumnum = firstnum + secondnum
list3.append(sumnum)
countone += 1
print list3
如果可以使用内置函数,则可以执行以下操作:
否则将代码更改为
^{pr2}$您不需要变量
counton
。在您可以使用
iter
和zip
:iter创建了一个迭代器,一旦您从迭代器中消费了一个元素,t就消失了,您将得到下一个元素:
^{pr2}$所以
zip(it,it)
基本上是调用next(it),next(it)
,直到迭代器用尽,剩下的是连续的元素对。它还避免了创建两个新的列表,如果你切片的话。在如果需要循环,请使用起始索引为1的enumerate,并在每次第i个索引被2整除时追加并重置一个
sm
变量:您可以使用切片创建两个新列表并将它们压缩在一起:
相关问题 更多 >
编程相关推荐