已知 list = [1,2,3,4,5]
for i in list 和 for i in range(len(list))
有什么区别呢?感谢
for i in list 和 for i in range(len(list))
有什么区别呢?感谢
|
1
前者是遍历列表元素,后者是遍历 [0, len(list)) 序列的元素
|
|
2
。。。。
for i in list : i 是 list 里面的元素的值 for i in range(len(list)) :i 是 range 新生成迭代器( 0,1,2,3,4 )里的元素 |
|
3
哦哦 我明白了,for i in list 的话,是把 i 变成 list 的每一个,然后每次增加一个,按 1,2,3,4,5 来。in range 的话,就一定是从 0-5 这样来
|
|
4
不好意思我丢人了。。。好久没写 Python,刚刚突然发现用 range 可以,直接 in list 不行,哈哈哈
|
|
PagliaciiMay 13, 2020
5
只是恰好你的列表元素是数字而已
|
|
6
for i in range(1, 5)举一反三
|
|
arrow8899May 13, 2020
9
还可以这样写
for index, value in enumerate(list): print (index, value) 效率更高,也更简洁 |
|
crellaMay 13, 2020 via Android
10
实现了 iterable 就行(好像是这样吧
|
|
crellaMay 13, 2020 via Android
11
感觉动态语言的发展方向都差不多,啥时候 nodejs 也能支持 for 或者 each 迭代?(
|
|
crellaMay 13, 2020
12
sorry,又暴露了我的无知,js 对应的是 for (let value of/in list){...}
|
|
LG3xFA6kpn88HxEWMay 13, 2020
13
@crella 直接用 Array.prototype.forEach 或者 Array.prototype.map 岂不美哉,感觉都好久没用过命令式的 api 了
|
|
zhanglintcMay 13, 2020
14
我还以为是在问 list 和 generator 的区别, 结果是这个.
list 里放点别的东西差别就很明显了嘛. |
|
15
楼上说的对,你放点别的东西,别放 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 |
|
EnyingMay 14, 2020 via Android
16
大家都是正解
|
|
sunmkerMay 14, 2020
17
前者是遍历,后者是取下标,list 有下标,别的嘞?
|
|
24bitMay 14, 2020
19
本质上都是一样的,只要实现了迭代器协议就可以用 for ... in 语法,range 对象迭代时返回的是数字而已
|
|
llsquaerMay 14, 2020
20
for i in list:
print('i') 表示遍历列表,并打印 i 的值( 比如 a b c d).你的案例看不出区别 for i in range(len(list)): print('i') 表示遍历的次数,并打印迭代后的数值 当然 你问题 有 list 和 range ...list 是列表,,而 range 简单理解为计数用的. |
|
northislandMay 14, 2020
21
python3 里 range 返回的是迭代器,和 list 不一样,运行时才生成。
python2 里木有什么区别 |