我正试图在一个编号列表中打印出一组班级中的学生。
这是我的代码
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)
但请注意,allStudents
是Set
,因此枚举上没有保证顺序。
您可以使用Array
对allStudents
进行排序,也可以使用Swift Collections中的OrderedSet
。
如果您需要排序,请尝试使用以下解决方案:
allStudents
.sorted(by: { $0 < $1 }) // Sorting
.enumerated() // Numbering
.forEach { // Cycle
print("($0 + 1) ($1)")
}