Python for循环和“ sum13”方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python for循环和“ sum13”方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1511字,纯文字阅读大概需要3分钟。
内容图文
![Python for循环和“ sum13”方法](/upload/InfoBanner/zyjiaocheng/685/ac5629e160d9447b869f9e8f064e53cd.jpg)
我是一位本机C程序员,刚开始学习python,并且已获得以下编写方法:
Return the sum of the numbers in the array, returning 0 for an empty array. Except the number 13 is very unlucky, so it does not count and numbers that come immediately after a 13 also do not count.
我的解决方案是:
def sum13(nums):
elem_sum = 0
index = 0
while index < len(nums):
if nums[index] != 13:
elem_sum += nums[index]
else:
index += 1 #nums[i] is 13, so skip the next element'
index += 1
return elem_sum
那些熟悉其他基于C语言的人会发现这里的循环类似于(相当干净的)
for(int i = 0; i < nums.size() /*nums.length*/; ++i) {
if(nums[i] != 13) elem_sum += nums[i];
else i++;
}
请注意,我是几天前才开始学习Python的,所以我对这门语言还是很陌生.我希望有人可以提供一些有关如何以“ Python”方式编写此循环的建议,或者可以使用我可能不知道的某些语言功能提供更干净的解决方案.
在之前的尝试中(无效),我进行了以下操作:
for i in range(len(nums)):
if nums[i] != 13:
elem_sum += nums[i]
else:
i += 1 #nums[i] is 13, so skip the next element'
解决方法:
关于sum和zip的理解如何:
码:
data = list(range(12, 16))
print(sum(i for i, j in zip(data, [0] + data) if 13 not in (i, j)))
结果:
27
这是如何运作的?
从内部开始,我们从zip开始. zip接受多个可迭代,并在第一次迭代时返回每个可迭代的第一个元素,然后在第二次迭代中返回每个可迭代的第二个元素,依此类推.
因此,我们要评估数据的当前元素加上前一个元素,因此我们传递数据,并通过在前面填充数据(在本例中为0)将数据偏移一个元素
将这两个列表扩展为i,j,一次扩展一个元素.然后,作为一种理解,如果i,j都不是13,则返回i.然后,对理解力进行求和,这很奇怪地将所有返回的元素求和.
内容总结
以上是互联网集市为您收集整理的Python for循环和“ sum13”方法全部内容,希望文章能够帮你解决Python for循环和“ sum13”方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。