列表与元组

每一门编程语言,都会有其对应的数据类型,Python里面非常常见的列表和元组,我在这里分享两点。

1、列表通常用来存放相同类型的记录;元组通常用来存放不同类型的记录。

2、列表的sorted方法,使用不同键值进行排序,会得到不同结果。

比如:

list1 = [28,14,'28',5,'9','1',0,6,'23',19]

使用sorted(list1)得到如下结果:

>>> list1

[28, 14, '28', 5, '9', '1', 0, 6, '23', 19]

>>> sorted(list1)

[0, 5, 6, 14, 19, 28, '1', '23', '28', '9']

加上key使用sorted(list1,key=int)会得到如下结果:

>>> list1

[28, 14, '28', 5, '9', '1', 0, 6, '23', 19]

>>> sorted(list1,key=int)

[0, '1', 5, 6, '9', 14, 19, '23', 28, '28']

加上key使用sorted(list1,key=str)会得到如下结果:

>>> list1

[28, 14, '28', 5, '9', '1', 0, 6, '23', 19]

>>> sorted(list1,key=str)

[0, '1', 14, 19, '23', 28, '28', 5, 6, '9']

使用list1.sort()会得到如下结果:

>>> list1

[28, 14, '28', 5, '9', '1', 0, 6, '23', 19]

>>> list1.sort()

>>> list1

[0, 5, 6, 14, 19, 28, '1', '23', '28', '9']

使用sorted(list1)和list1.sort()排序得到的结果是一样的,但前者是在内存中创建一个引用,不改变原对象的值;后者会直接改变原对象的值,这被称为in-place方法。

其实sorted和list.sort背后都是使用Timsort算法,它是Tim Peters开发的,这位仁兄同样是import this的开发者。

results matching ""

    No results matching ""