簡體   English   中英

我如何使用所有數字而不是python中的第一位對列表進行排序?

[英]how do i sort the list using all digits not just first digit in python?

已排序(用戶,鍵= attrgetter('user_id'),反向= True)[:10]

這行基於第一位數對對象列表進行排序,但是我希望所有位數在python排序期間都要考慮。

#!/usr/bin/python

import sys
from operator import attrgetter

class User:
    def __init__(self, x, y):
        self.name = x
        self.user_id = y

    def __repr__(self):
        return self.name + ":" + str(self.user_id)


users = []

for line in sys.stdin:
    data = line.strip().split('\t')
    users.append(User(data[0],data[-1]))


for user in users:
    print(user)

print('-----------')

for user in sorted(users, key=attrgetter('user_id'), reverse=True)[:10]:
    print(user)

將字符串轉換為int並對其進行排序將幫助您使用所有數字進行排序。

for line in sys.stdin:
    data = line.strip().split('\t')
    users.append(User(data[0],int(data[-1])))

如果user_id是整數,則應將其強制轉換為int來進行處理。 這將使排序工作按預期進行。 進行以下更改之一:

class User:
    def __init__(self, x, y):
        self.name = x
        self.user_id = int(y)

    def __repr__(self):
        return self.name + ":" + str(self.user_id)

或者,

users = []

for line in sys.stdin:
    data = line.strip().split('\t')
    users.append(User(data[0],int(data[-1])))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM