![]() | 1 Pagliacii 2020-05-13 19:24:05 +08:00 ![]() 前者是遍历列表元素,后者是遍历 [0, len(list)) 序列的元素 |
![]() | 2 wenqiang1208 2020-05-13 19:24:15 +08:00 ![]() 。。。。 for i in list : i 是 list 里面的元素的值 for i in range(len(list)) :i 是 range 新生成迭代器( 0,1,2,3,4 )里的元素 |
![]() | 3 GTD OP 哦哦 我明白了,for i in list 的话,是把 i 变成 list 的每一个,然后每次增加一个,按 1,2,3,4,5 来。in range 的话,就一定是从 0-5 这样来 |
![]() | 4 GTD OP 不好意思我丢人了。。。好久没写 Python,刚刚突然发现用 range 可以,直接 in list 不行,哈哈哈 |
![]() | 5 Pagliacii 2020-05-13 19:26:19 +08:00 只是恰好你的列表元素是数字而已 |
![]() | 6 cz5424 2020-05-13 19:28:48 +08:00 via iPhone ![]() for i in range(1, 5)举一反三 |
9 arrow8899 2020-05-13 20:02:12 +08:00 还可以这样写 for index, value in enumerate(list): print (index, value) 效率更高,也更简洁 |
![]() | 10 crella 2020-05-13 20:02:41 +08:00 via Android 实现了 iterable 就行(好像是这样吧 |
![]() | 11 crella 2020-05-13 20:04:11 +08:0 via Android 感觉动态语言的发展方向都差不多,啥时候 nodejs 也能支持 for 或者 each 迭代?( |
![]() | 12 crella 2020-05-13 20:10:35 +08:00 sorry,又暴露了我的无知,js 对应的是 for (let value of/in list){...} |
![]() | 13 l1nyanm1ng 2020-05-13 20:12:04 +08:00 @crella 直接用 Array.prototype.forEach 或者 Array.prototype.map 岂不美哉,感觉都好久没用过命令式的 api 了 |
14 zhanglintc 2020-05-13 22:01:51 +08:00 我还以为是在问 list 和 generator 的区别, 结果是这个. list 里放点别的东西差别就很明显了嘛. |
![]() | 15 sudoy 2020-05-13 23:10:11 +08:00 ![]() 楼上说的对,你放点别的东西,别放 12345,这样一眼就看出来。一个是值,一个是 index mylist = ['google', 'facebook', 'microsoft'] for x in mylist: print(x) # 输出结果应该是 google, amazon, facebook for y in range(len(mylist)): print(y) # 输出结果应该是 0, 1, 2 |
![]() | 16 Enying 2020-05-14 00:05:13 +08:00 via Android 大家都是正解 |
![]() | 17 sunmker 2020-05-14 09:23:42 +08:00 前者是遍历,后者是取下标,list 有下标,别的嘞? |
![]() | 19 24bit 2020-05-14 10:25:23 +08:00 本质上都是一样的,只要实现了迭代器协议就可以用 for ... in 语法,range 对象迭代时返回的是数字而已 |
![]() | 20 llsquaer 2020-05-14 11:32:32 +08:00 for i in list: print('i') 表示遍历列表,并打印 i 的值( 比如 a b c d).你的案例看不出区别 for i in range(len(list)): print('i') 表示遍历的次数,并打印迭代后的数值 当然 你问题 有 list 和 range ...list 是列表,,而 range 简单理解为计数用的. |
![]() | 21 northisland 2020-05-14 17:30:03 +08:00 python3 里 range 返回的是迭代器,和 list 不一样,运行时才生成。 python2 里木有什么区别 |