选择排序的for循环传递中的问题

我正在尝试以自己的方式实现选择排序。我正在以一种排序方式获得“ sorted_list”。但是,我无法弄清楚为什么在发现苏黎世是最高元素之后,下一个for loop通行证却跳过了开普敦。在所有找到下一个最高元素的实例中都是如此,在所有这些实例中,for循环中的下一步将跳过该最高元素旁边的元素。

names = ['Newyork','London','Tokyo','Manila','New-Delhi',        '大阪','慕尼黑','柏林','纽卡斯尔','都灵','莫斯科','悉尼',        '苏黎世','开普敦'] sorted_list = []

而名称:

for name in names:
 print(name)
 element_index = names.index(name)
 index=0
 while index<len(names):

  if name > names[index] or name == names[index]:
     print(index)
     index += 1

     if index == len(names):
         names.pop(element_index)
         sorted_list.append(name)

         break
  if name < names[index]:
   break

输出- 纽约 0 1个 伦敦 东京 0 1个 2 3 4 5 6 7 8 马尼拉 新德里 大阪 0 1个 慕尼黑 柏林 新城堡 都灵 0 1个 2 3 4 5 6 7 8 9 10 11 莫斯科 悉尼 0 1个 苏黎世 0 1个 2 3 4 5 6 7 8 9 10 11 12 13 纽约 0 1个 伦敦 东京 0 1个 2 3 4 5 6 7 8 马尼拉 新德里 大阪 0 1个 慕尼黑 柏林 新城堡 都灵 0 1个 2 3 4 5 6 7 8 9 10 11 12 悉尼 0 1个 开普敦 纽约 0 1个 伦敦 东京 0 1个 2 3 4 5 6 7 8 9 10 11 新德里 大阪 0 1个 2 3 4 5 6 7 8 慕尼黑 柏林 新城堡 莫斯科 悉尼 0 1个 2 3 4 5 6 7 8 9 10 纽约 0 1个 2 3 伦敦 马尼拉 新德里 大阪 0 1个 2 3 4 5 6 7 8 9 柏林 新城堡 莫斯科 开普敦 纽约 0 1个 2 3 4 5 6 7 8 马尼拉 0 1个 新德里 0 1个 2 3 4 慕尼黑 0 1个 柏林 新城堡 0 1个 2 3 4 5 6 7 开普敦 伦敦 0 马尼拉 0 1个 新德里 0 1个 2 3 4 5 6 柏林 莫斯科 0 1个 开普敦 伦敦 0 马尼拉 0 1个 慕尼黑 0 1个 2 3 4 5 莫斯科 0 1个 2 3 4 伦敦 0 马尼拉 0 1个 2 3 开普敦 伦敦 0 1个 2 开普敦 0 1个 柏林 0