Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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和Java或C中循环迭代的区别_Java_Python - Fatal编程技术网

python和Java或C中循环迭代的区别

python和Java或C中循环迭代的区别,java,python,Java,Python,我正在学习python,看到了这个循环条件声明的不同,我只是有一个问题,python中的for循环与C或Java中的相同算法for循环有什么不同,我知道语法上的不同,但是机器执行上有什么不同,哪个更快 比如说 for i in range(0,10): if i in range(3,7): print i 在爪哇 for(int i=0,i<10;i++){ if i>=3 && i<7 system.out.

我正在学习python,看到了这个循环条件声明的不同,我只是有一个问题,python中的for循环与C或Java中的相同算法
for循环
有什么不同,我知道语法上的不同,但是机器执行上有什么不同,哪个更快 比如说

for i in range(0,10):
    if i in range(3,7):
        print i
在爪哇

for(int i=0,i<10;i++){
    if i>=3 && i<7
        system.out.println(i);

for(int i=0,i=3&&i=3和i如果您使用的是python 2.x,那么
range
调用将在内存中创建一个完整的
列表
,保存该范围内的所有数字。这类似于用Java中的数字填充
LinkedList
,并对其进行迭代

如果要避免使用列表,可以使用
xrange
。它返回一个不创建临时列表的
iterable
对象,该对象与您发布的Java代码等效

请注意,
中的
条件并不等同于手动边界检查。Python将在O(n)中的范围内迭代以查找该项


在Python3.x中,
xrange
已不复存在,
range
返回一个
iterable

Python2.x或Python3.x?我认为边界检查实际上比查看它是否在某个范围内更快?如果我错了,有人纠正我……你可以自己轻松地计算时间。这会很有趣。@uʍopǝpısdn那么两者都会导致t同样的性能,我指的是边界与范围。在这里发布代码时,请尝试确保它是有效的代码。如果您发布的是伪代码,请说明。我在python中测试了range(5,10)和xrange(5,10),并理解您的意思。damm我一直只使用range,对于小范围来说,这并不是一个真正的问题:)是的,但我一直在使用python进行离散优化的MOCC,对于任务,我们必须解决python中的背包之类的问题,其中测试用例包含10000个节点的数据。我也停止了在我不需要的地方使用