跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 问一个 Python 的简单语法区别, for i in list 和 for i in range 的区别?
未分類
15 5 月 2020

问一个 Python 的简单语法区别, for i in list 和 for i in range 的区别?

问一个 Python 的简单语法区别, for i in list 和 for i in range 的区别?

資深大佬 : GTD 0

已知 list = [1,2,3,4,5]

for i in list 和 for i in range(len(list))

有什么区别呢?感谢

大佬有話說 (21)

  • 資深大佬 : Pagliacii

    前者是遍历列表元素,后者是遍历 [0, len(list)) 序列的元素

  • 資深大佬 : wenqiang1208

    。。。。
    for i in list : i 是 list 里面的元素的值
    for i in range(len(list)) :i 是 range 新生成迭代器( 0,1,2,3,4 )里的元素

  • 主 資深大佬 : GTD

    哦哦 我明白了,for i in list 的话,是把 i 变成 list 的每一个,然后每次增加一个,按 1,2,3,4,5 来。in range 的话,就一定是从 0-5 这样来

  • 主 資深大佬 : GTD

    不好意思我丢人了。。。好久没写 Python,刚刚突然发现用 range 可以,直接 in list 不行,哈哈哈

  • 資深大佬 : Pagliacii

    只是恰好你的列表元素是数字而已

  • 資深大佬 : cz5424

    for i in range(1, 5)举一反三

  • 資深大佬 : cz5424

    @cz5424 写错,应该是 6

  • 資深大佬 : ipwx

    @GTD 。。。你还是理解错了。python 的 for 从来没有“i 累加”这个语义,都是“foreach”的语义。

  • 資深大佬 : arrow8899

    还可以这样写
    for index, value in enumerate(list):
    print (index, value)
    效率更高,也更简洁

  • 資深大佬 : crella

    实现了 iterable 就行(好像是这样吧

  • 資深大佬 : crella

    感觉动态语言的发展方向都差不多,啥时候 nodejs 也能支持 for 或者 each 迭代?(

  • 資深大佬 : crella

    sorry,又暴露了我的无知,js 对应的是 for (let value of/in list){…}

  • 資深大佬 : l1nyanm1ng

    @crella 直接用 Array.prototype.forEach 或者 Array.prototype.map 岂不美哉,感觉都好久没用过命令式的 api 了

  • 資深大佬 : zhanglintc

    我还以为是在问 list 和 generator 的区别, 结果是这个.

    list 里放点别的东西差别就很明显了嘛.

  • 資深大佬 : sudoy

    上说的对,你放点别的东西,别放 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

  • 資深大佬 : Enying

    大家都是正解

  • 資深大佬 : sunmker

    前者是遍历,后者是取下标,list 有下标,别的嘞?

  • 資深大佬 : julyclyde

    @sunmker 后者也不是取下标

  • 資深大佬 : 24bit

    本质上都是一样的,只要实现了迭代器协议就可以用 for … in 语法,range 对象迭代时返回的是数字而已

  • 資深大佬 : llsquaer

    for i in list:
    print(‘i’) 表示遍历列表,并打印 i 的值( 比如 a b c d).你的案例看不出区别

    for i in range(len(list)):
    print(‘i’) 表示遍历的次数,并打印迭代后的数值

    当然 你问题 有 list 和 range …list 是列表,,而 range 简单理解为计数用的.

  • 資深大佬 : northisland

    python3 里 range 返回的是迭代器,和 list 不一样,运行时才生成。

    python2 里木有什么区别

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具