更新时间:2016年08月31日18时24分 来源:传智播客 浏览次数:
在使用Python的时候,经常会用到列表,列表(list)就是动态数组,相当于C++标准库的Vector。但不同的是,Python的列表可以存储多种数据类型于一身,非常强大。
下面介绍几种Python列表的常用用法:
一. 列表的创建:
使用 [ ] 把数据包含起来,便可以创建一个列表了。
1. [ ] 可以不包含任何数据,则表示创建一个空列表
>>> name = []
2. [ ] 也可以包含多种数据类型的数据
>>> name = ["damao", 30, "ermao"]
二. 列表的打印:
1. 使用内置函数print() 便可打印整个列表里的数据”
>>> print(name)
["damao", 30, "ermao"]
2. 当然也可以打印列表的某个下标的数据:
>>> print(name[0])
damao
3. 也可以分片打印列表的某段下标的数据
>>> print(name[0:2])
['damao', 30] #注意,没有打印name[2]的数据:)
4. 如果想要分别打印列表里的每个数据,只需要一个for就可以搞定:
>>> for each in name:
print(each)
damao
30
ermao
5. 当然也可以直接打印出列表内数据的个数:
>>> print(len(name))
3
三、列表的扩展:
1. 我们可以在列表末尾追加一个任意数据类型数据:
>>> name.append(["daoluan", 666])
>>> print(name)
['damao', 30, 'ermao', ['daoluan', 666]]
2. 也可以在列表末尾追加一个列表里的所有数据:
>>> name.extend(["sanmao", 10, "simao"])
>>> print(name)
['damao', 30, 'ermao', ['daoluan', 666], 'sanmao', 10, 'simao']
#注意,append和entend这两个方法看起来有些类似,但实际上是不同的。append只接受一个参数,但是这个参数可以是任意数据类型,比如列表和元组等,而且只是将这个数据追加到原列表后面独立存在。
extend也是只接受一个参数,不同的是这个参数必须是一个列表,而且会把这个列表的每个元素拆分出来,依次追加到原列表后面。
3. 当然也可以在指定位置增加一个任意数据类型数据(append的既视感):
# 第一个参数为指定的列表下标,第二个参数为增加的数据
>>> name.insert(3, 20)
>>> print(name)
['damao', 30, 'ermao', 20, ['daoluan', 666], 'sanmao', 10, 'simao']
四、列表的删除:
1. 删除列表末尾的一个数据:
>>> name.pop()
>>> print(name)
['damao', 30, 'ermao', 20, ['daoluan', 666], 'sanmao', 10]
2. 也可以删除列表指定的某一个数据:
>>> name.remove("sanmao")
>>> print(name)
['damao', 30, 'ermao', 20, ['daoluan', 666], 10]
3. 或者删除列表的某个下标的数据:
>>> del(name[4])
>>> print(name)
['damao', 30, 'ermao', 20, 10]
#注意,de()函数支持列表分片删除,同样的,也支持删除整个列表。
五、列表的合并:
只需要像I + I + I = III一样,就可以合并多个列表:
>>> mao = name + [20, "ermao"] + [30, "damao"]
>>> print(mao)
['damao', 30, 'ermao', 20, 10, 20, 'ermao', 30, 'damao']
六、列表的排序:
首先,列表里的每个元素类型相同才可以进行排序,对此我们可以选择手写排序算法,也可以选择Pythoy提供的更简便且强大的的方法:sort()和sorted()
1. 原地排序:
>>> fruit = ["banana", "pear", "orange", "apple"]
>>> fruit.sort()
>>> print(fruit)
['apple', 'banana', 'orange', 'pear']
# sort() 方法可以在原列表的基础上进行排序,同时改变原列表的顺序。
2. 复制排序:
>>> nums = [23, 12, -34, 0, 101, 2]
>>>newNums = sorted(nums)
>>> print(newNums)
[-34, 0, 2, 12, 23, 101]
>>> print(nums)
[23, 12, -34, 0, 101, 2]
# sorted() 函数通过复制排序可以对几乎任何数据结构排序,同时返回一个新的排序后的数据结构,而且不会改变原数据结构的序列。
#注意,不管使用sort()还是使用sorted(),默认都是升序排序。如果想按照降序排序,只要传入 reverse = True 参数就可以啦,比如 fruit.sort(reverse = True) 或者 newNums = sorted(nums, reverse = True)
好了,今天的Python小知识就到这里了,希望大家有所收获!轻松愉快,就算Python!