【问题标题】:Sorting a list with 2 pieces of data alphabetically按字母顺序对包含 2 条数据的列表进行排序
【发布时间】:2016-05-10 19:16:14
【问题描述】:

在整理出我的一个按分数排序的排序函数后,我需要让它按名字的第一个字母准确排序

文件中的数据如下所示:

Amber 0
Cyan 1
Blue 2

我试过了:

with open("Scores.txt","r") as f:
    lines = sorted(f.readlines())
    print lines

这以奇怪的顺序给出了它。它从以 A 开头的名称开始,然后移动到以 R 开头的名称,然后是 O。

我的输出应该是这样的:

Amber 0
Blue 2
Cyan 1

这是一个相对简单的程序,我使用的是 Python 2.7

任何帮助都会很棒,我还可以提供有关我的程序的任何信息!

【问题讨论】:

  • 该代码在我看来是正确的。你能发布一个实际产生问题的示例文件吗?
  • “它以 A 开头的名称开始,然后移动到以 R 开头的名称,然后是 O。” 在您的示例文件中,以 R 和 O 开头的名称在哪里?

标签: python sorting alphabetical


【解决方案1】:

试试这个,

with open("Scores.txt","r") as f:
    lists = [line.rstrip().split() for line in f.readlines()]
    lists.sort()
    print(lists)

# Output
[['Amber', '0'], ['Blue', '2'], ['Cyan', '1']]

【讨论】:

  • 应该是先按名字排序的,所以省略了key。
  • 如果您仍然要创建列表,为什么不使用.sort() 方法来保存额外列表的创建?
  • @TadhgMcDonald-Jensen,谢谢提醒。刚刚更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 2013-05-02
  • 2014-02-08
  • 1970-01-01
  • 2015-01-18
相关资源
最近更新 更多