在快速打印中打印编号列表

4sup72z8  于 2022-10-23  发布在  Swift
关注(0)|答案(2)|浏览(131)

我正试着用编号列表打印出一个班级的一组学生。
这是我有的代码

var spanish101: Set = ["Angela", "Declan", "Aldany", "Alex", "Sonny", "Alif", "Skyla"]
var german101: Set = ["Angela", "Alex", "Declan", "Kenny", "Cynara", "Adam"]
var advancedCalculus: Set = ["Cynara", "Gabby", "Angela", "Samantha", "Ana", "Aldany", "Galina", "Jasmine"]
var artHistory: Set = ["Samantha", "Vanessa", "Aldrian", "Cynara", "Kenny", "Declan", "Skyla"]
var englishLiterature: Set = ["Gabby", "Jasmine", "Alex", "Alif", "Aldrian", "Adam", "Angela"]
var computerScience: Set = ["Galina", "Kenny", "Sonny", "Alex", "Skyla"]

var allStudents: Set = spanish101.union(german101).union(advancedCalculus).union(artHistory).union(englishLiterature).union(computerScience)

for students in allStudents
{
  print(students)
}

我试过做print(students.count, students),但它只能打印随机数。
不确定这些数字的原因和来源。
我曾尝试使用for count in 1..<Students.count创建嵌套循环,但这使列表打印了16次。
我希望输出看起来像这样

hivapdat

hivapdat1#

您可以使用:

for anEnumerated in allStudents.enumerated() {
    print("\(anEnumerated.0) - \(anEnumerated.1)")
}

for (anOffset, aStudent) in allStudents.enumerated() {
    print("\(anOffset) - \(aStudent)")
}

如果要从1而不是0开始,只需添加+ 1(anOffset + 1)\(anEnumerated.0 + 1)
但请注意,allStudentsSet,因此没有保证枚举的顺序。
您可以使用ArraySwift-Collections中的allStudentsOrderedSet进行排序。

6psbrbz9

6psbrbz92#

如果您需要排序,请尝试使用以下解决方案:

allStudents
    .sorted(by: { $0 < $1 }) // Sorting
    .enumerated() // Numbering
    .forEach { // Cycle
        print("\($0 + 1) \($1)")
    }

相关问题