[英]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.