是否有一个函数,我可以使用迭代数组,并有索引和元素,像Python的枚举?

for index, element in enumerate(list):
    ...

当前回答

你可以简单地使用循环枚举来得到你想要的结果:

斯威夫特2:

for (index, element) in elements.enumerate() {
    print("\(index): \(element)")
}

Swift 3和4:

for (index, element) in elements.enumerated() {
    print("\(index): \(element)")
}

或者你可以简单地执行一个for循环来得到相同的结果:

for index in 0..<elements.count {
    let element = elements[index]
    print("\(index): \(element)")
}

希望能有所帮助。

其他回答

Xcode 8和Swift 3: 可以使用temparray . enumeration()枚举数组。

例子:

var someStrs = [String]()

someStrs.append("Apple")  
someStrs.append("Amazon")  
someStrs += ["Google"]    


for (index, item) in someStrs.enumerated()  
{  
        print("Value at index = \(index) is \(item)").  
}

控制台:

Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google

在函数式编程中像这样使用. enumeration ():

list.enumerated().forEach { print($0.offset, $0.element) } 

从Swift 3开始,的确如此

for (index, element) in list.enumerated() {
  print("Item \(index): \(element)")
}

是的。从Swift 3.0开始,如果需要每个元素的索引及其值,可以使用enumeration()方法遍历数组。它返回一个由索引和数组中每个项的值组成的对序列。例如:

for (index, element) in list.enumerated() {
  print("Item \(index): \(element)")
}

在Swift 3.0之前和Swift 2.0之后,函数被称为enumerate():

for (index, element) in list.enumerate() {
    print("Item \(index): \(element)")
}

在Swift 2.0之前,enumerate是一个全局函数。

for (index, element) in enumerate(list) {
    println("Item \(index): \(element)")
}

我在寻找一种使用Dictionary的方法时找到了这个答案,结果证明它很容易适应,只需为元素传递一个元组。

// Swift 2

var list = ["a": 1, "b": 2]

for (index, (letter, value)) in list.enumerate() {
    print("Item \(index): \(letter) \(value)")
}