通过字符串属性对对象列表进行排序,而忽略Python中的大小写?

时间:2018-08-07 14:00:08

标签: python list sorting lambda

通过这篇出色的文章,我能够按字符串属性对对象列表进行排序:

getDefaultToolkit()

但是,我还需要排序时按字母顺序忽略大小写。假设我有一个对象列表,每个对象都有一个属性“名称”:

class MyObject (object):
   def __init__(self):
      MyObject.Name = None

itemsList = []

object1 = MyObject()
object1.Name = "Orange"
itemsList.append(object1)

object2 = MyObject()
object2.Name = "apple"
itemsList.append(object2)

object3 = MyObject()
object3.Name = "Banana"
itemsList.append(object3)

我可以这样对它们进行排序:

itemsList.sort(key=lambda item : item.Name)

但是我怎么也忽略大小写呢?我尝试在最后一行将lower扔到Name上,但这对我不起作用。

1 个答案:

答案 0 :(得分:1)

根据建议,在将字符串映射为小写字母后比较字符串:

itemsList.sort(key=lambda item : item.Name.lower())