我正在尝试创建一个执行以下操作的 python 脚本:
表(dbf 或 csv-我都可以创建)总是只有 4 条记录。第二列(Let)将始终按 a、b、c、d 排序。第 1 列(Num)总是有 0-10 之间的数字,但频率和顺序会有所不同。输出需要按 Num 排序和分组,首先输出最小的数字。如果第一列中的数字出现一次,则只输出对应的字母。如果一个数字出现两次(即两行具有相同的数字),则输出每个对应的字母,并在它们之间加上一个“和”。如果数字出现两次以上,则输出每个字母,它们之间有一个逗号,最后一个字母之前有一个“和”。出现的每个字母组都有自己的输出行。
基本上希望对 4 个选项中的 1 个进行排序、分组和输出:
“无数据”
1 个字母本身
2 个字母由“and”
分隔 3 个字母由逗号分隔,最后一个字母前有一个“and”。
以下是名为 soils_no.dbf 的表的各种版本及其所需的输出,具体取决于输入。
数字............让
0......a
0......b
0...... ..........c
0.......d
打印“无数据”
数字............让
8......a
8......b
2...... ..........c
8.......d
打印 c
打印 a、b 和 d
数字............让
4......a
1......b
7...... ..........c
3.......d
打印 b
打印 d
打印 a
打印 c
数字............让
3......a
3......b
10...... ..........c
1.......d
打印 d
打印 a 和 b
打印 c
数............让
10......a
10......b
10...... ..........c
10.................d
打印 a、b、c 和 d
我知道如何循环并将逗号和“和”放入,但我不知道如何分组和排序。使用 python 2.7 执行此操作。
顺便说一句,我正在尝试学习 python,所以请解释一下代码的含义。我学得越多,就越不依赖陌生人的善意。
提前致谢。