我有以下文件 如何根据每行中找到的“/”数进行排序
A / B / C / d / E / F A / K / L A / M / M / P B / H / S / I / L / M 的b / h B / E / F / G / P / L / I 易于 A / K / S B / P /吨 B / K / S
这些行分类如下。
B / E / F / G / P / L / I A / B / C / d / E / F B / H / S / I / L / M A / M / M / P A / K / L 易于 A / K / S B / P /吨 B / K / S B / H
实现这一目标的最佳方法是什么?
谢谢, 拉维
答案 0 :(得分:0)
一种方法是一次读一行,并计算多少' /'在那条线上。 然后将一个元素插入一个hashmap,其中key是该行的id(可以是顺序的(1到N)),然后按值对hashmap进行排序。如果你正在使用Python,这看起来像this。按顺序迭代键将为您提供相应行的索引。
Python中以排序顺序打印行的示例:
import operator
def sort_by_char(lines, ch):
""" Given a list of strings and a character, print out the lines sorted by how many characters (ch) it contains """
hashmap = {}
for idx in range(len(lines)):
line = lines[idx]
count = line.count(ch)
hashmap[idx] = count
sorted_lines = sorted(hashmap.items(), key=operator.itemgetter(1))
for i in range(len(lines)):
print lines[sorted_lines[i][0]]
或者,您可以使用计数作为键,使用行作为值。