用swift打印编号列表



我正试图在一个编号列表中打印出一组班级中的学生。

这是我的代码

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),但它只是打印出随机数字。

不确定这些数字的来源和原因
我尝试在1中使用for count进行嵌套循环。<students.count,但这使得列表打印了16次。

我希望输出看起来像

1 studentName
2 studentName
3 studentName
4 studentName
...
16 studentName

您可以使用:

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,因此枚举上没有保证顺序。

您可以使用ArrayallStudents进行排序,也可以使用Swift Collections中的OrderedSet

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

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

最新更新