python中对数进行排序_在Python中重新排序日志文件中的数据

假设我们有一系列日志。在该数组中,每个条目都是一个由空格分隔的单词字符串。每个日志中的第一个单词是字母数字标识符。然后,有以下不同类型的字符串-ID后的每个单词仅包含小写字母;

ID后的每个单词仅包含数字。

我们将这两种类型的日志分别称为字母日志和数字日志。ti保证每个日志在其id后至少有一个单词。

我们必须重新排序日志,以便所有字母日志都保留在任何数字日志之前。字母日志在字典上按顺序排序,忽略标识符,在平局的情况下使用标识符。最后,数字日志应按其原始顺序放置。因此,我们必须返回日志的最终顺序。

因此,如果输入像日志= [“ dig1 9 2 5 2”,“ let1 art can”,“ dig2 4 8”,“ let2 own kit dig”,“ let3 art zero”],那么输出将为[ “ let1 art can”,“ let3 art zero”,“ let2 own kit dig”,“ dig1 9 2 5 2”,“ dig2 4 8”]

为了解决这个问题,我们将遵循以下步骤-单词:=一个新列表

nums:=一个新列表

对于每个登录日志,执行通过用空格分隔来连接s的每个元素,并在最后插入word数组

在num的末尾插入日志

s:=日志单词列表

如果第二个单词是数字,则

除此以外,

words =然后按字典顺序对单词数组进行排序

words:=通过用空格分隔来连接word数组的每个元素,并创建一个字符串列表

合并两个列表中的单词和数字,然后返回

让我们看下面的实现以更好地理解-

示例class Solution:

def reorderLogFiles(self, logs):

words = []

nums = []

for log in logs:

s = log.split()

if s[1].isdigit():

nums.append(log)

else:

words.append((s[0], ' '.join(s[1:])))

words = sorted(words, key=lambda x: (x[1],x[0]))

words = [' '.join(w) for w in words]

return words + nums

ob = Solution()print(ob.reorderLogFiles(["dig1 9 2 5 2","let1 art can","dig2 4

8","let2 own kit dig","let3 art zero"]))

输入值["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"]

输出结果['let1 art can', 'let3 art zero', 'let2 own kit dig', 'dig1 9 2 5 2', 'dig24 8']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值