指定 key 與value
foreach($arr as $key => $value){
echo "{$key}==>{$value}<br>";
}
也可以只獲取值。
foreach($arr as $value){
echo "{$value}<br>";
}
只有值
準備一個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語言中,遍歷資料或切片時可以用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)
本作品採用《CC 協議》,轉載必須註明作者和本文連結