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