相关疑难解决方法(0)

对类实例Python列表进行排序

我有一个类实例列表 -

x = [<iteminstance1>,...]
Run Code Online (Sandbox Code Playgroud)

除了其他属性之外,该类具有score属性.如何根据此参数按升序对项目进行排序?

编辑:list在python中有一些东西叫做sort.我可以在这里用吗?如何指示此函数使用我的score属性?

python sorting

59
推荐指数
2
解决办法
8万
查看次数

Python 2.5字典2键排序

我有一个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)

python

15
推荐指数
2
解决办法
3万
查看次数

对包含元组的元组进行排序

我有以下元组,其中包含元组:

MY_TUPLE = (
    ('A','Apple'),
    ('C','Carrot'),
    ('B','Banana'),
)
Run Code Online (Sandbox Code Playgroud)

我想根据内部元组中包含的第二个值来排序这个元组(即,排序Apple,Carrot,Banana而不是A,B,C).

有什么想法吗?

python sorting tuples

12
推荐指数
2
解决办法
9461
查看次数

使用两个键排序Python列表,但只有一个按相反顺序排序

我想知道用两个键对元组列表进行排序的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)

但这会按两个键的相反顺序排序.

任何提示都非常感谢.

python sorting tuples key

9
推荐指数
3
解决办法
4906
查看次数

在实例方法中更改类实例

任何想法是否有办法使以下代码工作

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)

python class instance hotswap

7
推荐指数
1
解决办法
4191
查看次数

自定义排序python

我有一个问题:这是由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

问题是我找不到如何应用这两种方法来对我的"列表列表"进行排序的方法.

python sorting

6
推荐指数
1
解决办法
1万
查看次数

Python:根据对象的属性对对象列表进行排序

只是作为序言,我已经查看了与此问题有关的帖子,但他们还没有完全回答我的问题。

所以我只想知道如何以两种方式根据对象的属性对对象列表进行排序:

  1. 如果属性是字符串(按字母顺序排列)
  2. 如果属性是整数(按数字顺序执行)

这是我的课程列表:

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)

所以我真正在寻找的是一种对这个列表进行排序的方法,即英雄的名字按字母顺序排序,然后是另一种级别的方法。谢谢!

python sorting class list

5
推荐指数
1
解决办法
4944
查看次数

是否有"单行"方式从排序顺序获取字典中的键列表?

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)

有没有一种很好的方法可以按排序顺序迭代这些键,而不必将其分解为多个步骤?

python iterator syntactic-sugar

3
推荐指数
3
解决办法
5591
查看次数

如何按长度对单词列表进行排序

我想根据长度对列表中的单词进行排序。

测试用例是 {'cat','jump','blue','balloon'}

通过此方法运行时,它将按照以下内容打印内容:

{'balloon','jump','blue','balloon'}
Run Code Online (Sandbox Code Playgroud)

我遇到的另一个问题是,我们使用的python类型工作正常,但是当我尝试在Python 3.5.2 shell中运行.py时,出现了错误。

我主要只需要知道我做错了什么,以及我可以做些什么来解决它,以使其起作用。任何帮助表示赞赏!

.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)

python sorting python-2.7

3
推荐指数
1
解决办法
6705
查看次数

对象列表上的自定义排序

我有像这样的对象列表

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.你能帮我解决一下这个怎么办?

python sorting oop list python-3.x

3
推荐指数
1
解决办法
71
查看次数