我有一个类实例列表 -
x = [<iteminstance1>,...]
Run Code Online (Sandbox Code Playgroud)
除了其他属性之外,该类具有score属性.如何根据此参数按升序对项目进行排序?
编辑:list在python中有一些东西叫做sort.我可以在这里用吗?如何指示此函数使用我的score属性?
我有一个200,000项的字典(键是字符串,值是整数).
什么是打印项目的最佳/最pythonic方式,按降序值排序,然后按升序键(即2键排序)?
a={ 'keyC':1, 'keyB':2, 'keyA':1 }
b = a.items()
b.sort( key=lambda a:a[0])
b.sort( key=lambda a:a[1], reverse=True )
print b
>>>[('keyB', 2), ('keyA', 1), ('keyC', 1)]
Run Code Online (Sandbox Code Playgroud) 我有以下元组,其中包含元组:
MY_TUPLE = (
('A','Apple'),
('C','Carrot'),
('B','Banana'),
)
Run Code Online (Sandbox Code Playgroud)
我想根据内部元组中包含的第二个值来排序这个元组(即,排序Apple,Carrot,Banana而不是A,B,C).
有什么想法吗?
我想知道用两个键对元组列表进行排序的Pythonic方法是什么,其中用一个(并且只有一个)键进行排序将是相反的顺序,而用另一个键进行排序将不区分大小写.更具体地说,我有一个包含元组的列表:
myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码用两个键对其进行排序:
sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
Run Code Online (Sandbox Code Playgroud)
要按相反顺序排序,我可以使用
sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
Run Code Online (Sandbox Code Playgroud)
但这会按两个键的相反顺序排序.
任何提示都非常感谢.
任何想法是否有办法使以下代码工作
class Test(object):
def __init__(self, var):
self.var = var
def changeme(self):
self = Test(3)
t = Test(1)
assert t.var == 1
t.changeme()
assert t.var == 3
Run Code Online (Sandbox Code Playgroud)
类似于以下安全用于更复杂的对象(如django模型,热交换实例所指的db条目)
class Test(object):
def __init__(self, var):
self.var = var
def changeme(self):
new_instance = Test(3)
self.__dict__ = new_instance.__dict__
t = Test(1)
assert t.var == 1
t.changeme()
assert t.var == 3
Run Code Online (Sandbox Code Playgroud) 我有一个问题:这是由ElementTree库组成的列表列表.
[['word1', <Element tag at b719a4cc>], ['word2', <Element tag at b719a6cc>], ['word3', <Element tag at b719a78c>], ['word4', <Element tag at b719a82c>]]
Run Code Online (Sandbox Code Playgroud)
word1..4可能包含unicode字符,即(â,ü,ç).
我想按自定义字母对这个列表列表进行排序.
我知道如何通过自定义字母排序从这里 排序python中的单词
我也知道如何从这里按键排序http://wiki.python.org/moin/HowTo/Sorting
问题是我找不到如何应用这两种方法来对我的"列表列表"进行排序的方法.
只是作为序言,我已经查看了与此问题有关的帖子,但他们还没有完全回答我的问题。
所以我只想知道如何以两种方式根据对象的属性对对象列表进行排序:
这是我的课程列表:
mainList = [
hero( name='SirGoose', classes='Fighter', level=150 ),
hero( name='Conan', classes='Barbarian', level=160 ),
hero( name='KingArthur', classes='Knight', level=170 )
]
Run Code Online (Sandbox Code Playgroud)
所以我真正在寻找的是一种对这个列表进行排序的方法,即英雄的名字按字母顺序排序,然后是另一种级别的方法。谢谢!
list sort()方法是一个返回的修饰符函数None.
因此,如果我想遍历字典中的所有键,我不能这样做:
for k in somedictionary.keys().sort():
dosomething()
Run Code Online (Sandbox Code Playgroud)
相反,我必须:
keys = somedictionary.keys()
keys.sort()
for k in keys:
dosomething()
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法可以按排序顺序迭代这些键,而不必将其分解为多个步骤?
我想根据长度对列表中的单词进行排序。
测试用例是 {'cat','jump','blue','balloon'}
通过此方法运行时,它将按照以下内容打印内容:
{'balloon','jump','blue','balloon'}
Run Code Online (Sandbox Code Playgroud)
我遇到的另一个问题是,我们使用的python类型工作正常,但是当我尝试在Python 3.5.2 shell中运行.py时,出现了错误。
我主要只需要知道我做错了什么,以及我可以做些什么来解决它,以使其起作用。任何帮助表示赞赏!
def wordSort():
words = []
minimum = 'NaN'
index = 0
x = 0
y = 0
z = 1
#How many words to be entered
length = input('How many words would you like to enter? ')
#Put words in the number of times you entered previously
while not z >= length + 1:
words.append(raw_input('Enter word #' + str(z) + ': '))
z += 1
while x …Run Code Online (Sandbox Code Playgroud) 我有像这样的对象列表
actors = [Person('Raj' ,'Hindi'),
Person('John', 'English'),
Person('Michael' 'Marathi'),
Person('Terry','Hindi'),
Person('Terry', 'Telugu')]
Run Code Online (Sandbox Code Playgroud)
我想根据他们的母语对这份人民名单进行排序.顺序马拉地语,英语,印地语,泰卢固语.意味着我想要以自定义逻辑而不是按升序或降序对对象进行排序.
我正在使用python 3.7.你能帮我解决一下这个怎么办?