js list遍历_每天用对比的思想学点 golanggolang for range 遍历 对比 PHP、python

b0b715b20242ff33fd7ad96d283a3790.png

php 的遍历

指定 key 与 value

foreach($arr as $key => $value){
echo "{$key}==>{$value}
";
}

也可以只获取值。

foreach($arr as $value){
echo "{$value}
";
}

python 的遍历

只有值

准备一个 list:

list = [‘html’, ‘js’, ‘css’, ‘python’]

#!/usr/bin/env python
# -*- coding: utf-8 -*-
if __name__ == '__main__':
list = ['html', 'js', 'css', 'python']

# 方法1
print '遍历列表方法1:'
for i in list:
print ("序号:%s 值:%s" % (list.index(i) + 1, i))

print '\n遍历列表方法2:'
# 方法2
for i in range(len(list)):
print ("序号:%s 值:%s" % (i + 1, list[i]))

# 方法3
print '\n遍历列表方法3:'
for i, val in enumerate(list):
print ("序号:%s 值:%s" % (i + 1, val))

# 方法3
print '\n遍历列表方法3 (设置遍历开始初始位置,只改变了起始序号):'
for i, val in enumerate(list, 2):
print ("序号:%s 值:%s" % (i + 1, val))

key value 形式

遍历 key=>value 形式的数据 dict。

for (k,v) in  dict.items(): 
print "dict[%s]=" % k,v

go 的遍历

在 go 语言中,遍历数据或切片时可以用 range,range 会产生两个值,分别是数据的索引与值:

package main

import "fmt"

func main() {
x := []string{"a", "b", "c"}

for v := range x {
fmt.Println(v) //prints 0, 1, 2
}
}

这种写法非常不好(虽然没有报错),因为 for…range 的过程中,产生了 index (索引) 与 value 两个值,但是在遍历的时候,却没有显示地声明有这 index 变量,虽然我们此时不用 index, 时刻养成良好的编码习惯。

package main

import "fmt"

func main() {
x := []string{"a","b","c"}

for _, v := range x {
fmt.Println(v) //prints a, b, c
}
}

不用就将索引忽略!!!

总结

在 php、python 遍历时候,如果你不需要使用 key ,那就别拿 key 了。

但是在 golang 中,你的遍历自带 key,抱歉,弟弟,你扔不掉。
那怎么办呢?就是用一个匿名变量 _ 来把它 接收了吧。

例子:

sum := 0

//通过for循环遍历集合中的数据

//for i := 0; i < len(arr); i++ {

// //fmt.Println(arr[i])

// sum += arr[i]

//}

//通过for循环遍历集合中的数据

//i -> index 下标 v -> value 值

//_匿名变量 如果数据的值不需要接收 可以通过匿名变量来接收数据

for _, v := range arr {

//fmt.Println(i, v)

sum += v

}

fmt.Println(sum)

防爬虫说明

禁止 学习某地爬虫,知乎爬虫,CSDN 爬虫。

本文,首发在 learnku 社区。

@author
汪春波(www.shxdledu.cn)

a86d0aed7cf0a8d301f007103f173d3e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值