正在加载...

排序

sorted(words) 会做出一份新列表,words 仍保持原样。words 里先是 soup,然后 bread,然后 rice。新列表按第一个字母排:bread 的 b,然后 rice 的 r,然后 soup 的 s。所以新列表是 bread,然后 rice,然后 soup。

名字 ordered 就是这份新列表。words 仍是 soup,然后 bread,然后 rice。两份的长度都是 3。没有多出一个,也没有少掉一个。变的只是新列表里的顺序。

排好的一份新列表

python
words = ["soup", "bread", "rice"]
ordered = sorted(words)

print(words)
print(ordered)

第一行是 soup,然后 bread,然后 rice。第二行是 bread,然后 rice,然后 soup。soup 仍是 words 的第一个。bread 只在 ordered 里排最前。

words.sort() 把你已经有的那份列表重新排过。不会另建一份。排完以后,words 自己就是 bread,然后 rice,然后 soup。这一步的结果并不是那份列表。如果写成 result = words.sort(),result 会是 None,排好的值仍留在 words 里。这一行不在下面的程序里。

同一份列表,换了顺序

python
words = ["soup", "bread", "rice"]
words.sort()

print(words)

屏幕上是 bread,然后 rice,然后 soup。soup 不再排在最前。这仍是你一开始的那份列表,只是位置换了。

counts 一开始是 5,然后 0,然后 2。counts.sort() 按大小来排这些数。0 比 2 小,2 比 5 小,所以列表变成 0,然后 2,然后 5。这个 0 是存着的一个数。它排到前面,是因为它最小,不是因为位置的号码。

数按大小排

python
counts = [5, 0, 2]
counts.sort()

print(counts)

屏幕上是 0,然后 2,然后 5。长度仍是 3。没有新的数出现,也没有数被丢掉。

下一页是一个固定组合。这一页只把列表里的值排成顺序。它不做出那个组合。

三块屏幕

  1. 第一个程序第一行写出什么,第二行又写出什么?
  2. words.sort() 之后,words 是什么?
  3. 第三个程序写出什么?
  4. 如果写成 result = words.sort(),result 会是什么?

bread 排在 soup 前面

第一块屏幕留着 soup、bread、rice,然后写出 bread、rice、soup。words.sort() 让 words 自己变成 bread,然后 rice,然后 soup。counts.sort() 写出 0,然后 2,然后 5。result = words.sort() 会让 result 成为 None。下一页是一个固定组合。这一页只给一份列表排序。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
4
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部