Python和Java之间的For循环差异
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python和Java之间的For循环差异,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2290字,纯文字阅读大概需要4分钟。
内容图文
![Python和Java之间的For循环差异](/upload/InfoBanner/zyjiaocheng/670/e14fdadf82be415e92df310fcf1cd1be.jpg)
在Python中,我们进行for循环,例如:
for i in range(len(nums))
在Java中:
我们有:
for (int i = 0; i < nums.length; i++)
这两个for循环是否相同?如果我们在for循环中进行了一些更改,那么说在for循环中我已经加了3,对于Java,接下来在for循环中我会是4?虽然Python仍然从2开始
Leetcode594.最长和谐子序列.
我们定义一个和谐数组,它的最大值和最小值之差恰好为1
用Java编写的解决方案如下:
nums=[1,3,2,2,5,2,3,7]
public class Solution {
public int findLHS(int[] nums) {
Arrays.sort(nums);
int prev_count = 1, res = 0;
for (int i = 0; i < nums.length; i++) {
int count = 1;
if (i > 0 && nums[i] - nums[i - 1] == 1) {
while (i < nums.length - 1 && nums[i] == nums[i + 1]) {
count++;
i++;
}
res = Math.max(res, count + prev_count);
prev_count = count;
} else {
while (i < nums.length - 1 && nums[i] == nums[i + 1]) {
count++;
i++;
}
prev_count = count;
}
}
return res;
}
}
我转换为Python:
nums=[1,3,2,2,5,2,3,7]
nums=sorted(nums)
prev_count=1
res=0
i=0
for i in range(len(nums)-1):
count=1
if i>0 and nums[i]-nums[i-1]==1:
while i<len(nums)-1 and nums[i] == nums[i+1]:
count+=1
i+=1
res=max(res,count+prev_count)
prev_count=count
else:
while i<len(nums)-1 and nums[i] == nums[i+1]:
count+=1
i+=1
prev_count=count
print (res)
在Java中
for (int i = 0; i < nums.length; i++) {
int count = 1;
if (i > 0 && nums[i] - nums[i - 1] == 1) {
while (i < nums.length - 1 && nums[i] == nums[i + 1]) {
count++;
i++;
}
我在for循环内,所以我从添加的所有内容开始.
在Python中:
for i in range(len(nums)-1):
count=1
if i>0 and nums[i]-nums[i-1]==1:
while i<len(nums)-1 and nums[i] == nums[i+1]:
count+=1
i+=1
在i = 1之后,它仅适用于While循环,for循环仍从i = 2开始而不是4.
Java返回的答案是5,而python是4.我调试了代码,并且看起来Java启动了我添加的所有内容,而Python没有使用添加的i,并且总是从最后一个开始.
解决方法:
在Java中,for循环语义是从C借用的.
for (<initilization>; <termination condition>; <what to do in after each iteration>)
在开始(初始化)之前执行某些操作,然后直到达到某个条件(终止条件)为止,然后进行一些操作以取得进展(每次迭代后要执行的操作). i的惯用for循环起作用,因为迭代状态保持在i内.因此,如果您在循环体内对i进行更改,则迭代状态也会更改.
python语法类似于bash循环:
for i in some_iterable:
在此,i接受some_iterable中的每个值,并且循环针对i的每个值运行一次.如果您在循环体内更改i,则没关系;在下一次迭代中,从迭代中为我分配了下一个值.循环的状态保持在可迭代状态,而不是i.我正是让您访问迭代器的当前值的工具.
内容总结
以上是互联网集市为您收集整理的Python和Java之间的For循环差异全部内容,希望文章能够帮你解决Python和Java之间的For循环差异所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。