python的列表有点像C语言的数组,是一堆元素的集合。但python的列表跟C语言的数组差别也挺大的 ,最明显的就是,python的列表的元素可以是任意的,
列表可以存储字符串、整数、小数、列表、元组等任何类型的内容,就算同一个列表里,元素的类型也可以是不同的。例如:
[1, [1, 2, 3, 4, 7, 8] , 5.0, "hi", (0,1)]
可以看到,列表中同时包含字符串、整数、列表、浮点数、元组这些不同的类型。
如果你看到这个类型有点眼花,一时半会不知道是什么类型,有个简单的办法,直接用tpye函数,就可以马上看到变量的数据类型了:
[root@VM-0-14-centos ~]# python
Python 2.6.6 (r266:84292, Jun 20 2019, 14:14:55)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> type([1, [1, 2, 3, 4, 7, 8] , 5.0, "hi", (0,1)])
<type 'list'>
这里显示的type 'list'就是这个变量的类型了,所以,当你不肯定这个变量是啥类型的时候,就可以用这个函数来确定。
扯远了,对于列表来说,有哪些操作呢?且看下文。
列表的创建
在 Python 里头,有两种常见创建列表的方法,分别是直接创建法和函数创建法。
直接创建法
直接创建法就是用“[]”运算符创建,格式如下:
mylist = [element1, element2,element3,element4,element5, ...]
这里的element1....elementN就是任意的元素,通常用[]创建完之后要通过=号赋值给一个变量以便后续使用,当然,有些情况也可以不用,比如:
>>> for var in [1, 2, 3]:
... print var
...
1
2
3
但更常用的是通过=号来赋值,可以看看以下这些例子:
num = [1, 2, 3, 4, 5]
floatNum = [1.0, 2.0, 3.0]
strings = ['hello world', 'i am a robot', 'who is that guy']
如果一个列表是空的,要怎么写呢?可以这么写emptyList=[]
函数创建法
除了直接用[]创建外,你可以用list函数来创建,这是一个python的内置函数,它把里面的内容转换为列表。看看下面的列子:
#将字符串变成列表
listStr = list("python")
print(listStr)
#运行结果
#['p', 'y', 't', 'h', 'o', 'n']
#把元组转换成列表
listTuple = list( ('one', 'two', 'three') )
print(listTuple)
#运行结果
#['one', 'two', 'three']
#把字典转换成列表
listDict = list({'one': '一', 'two': '二', 'three': '三'})
print(listDict)
#运行结果
#['three', 'two', 'one']
访问列表的元素
当你创建列表后,你要怎么获取里面的元素呢?实际上,列表的访问跟C语言的数组访问很像,可以通过下表来访问。
mylist = [element1, element2,element3,element4,element5]
要访问第一个元素,那就写mylist[0], 要访问第二个元素,那就写mylist[1],要访问第三个元素,那么就写mylist[2]
规律就是mylist[i]。注意下标要从0开始。
此外,你还可以访问列表重点的部分元素,比如
mylist[2:4], 那么就会访问第三到第五个元素,这里的结束的那个位置的元素是不会非访问的,即mylist[4],第五个元素不会被访问。
这种方式,默认是每次步进一个单位访问元素,你还可以指定步进的单位,比如这里指定2,就是每隔2个单位来访问元素,即
mylist[1:4:2]就是[1, 3]
总结起来,这种访问方式就是mylist[start, end: step],从start开始,每隔step个单位访问元素,结束于end-1。
此外,除了整数,你还可以用负数,比如
mylist[-1],就是最后一个元素,即5
mylist[-4: -1]就是[2, 3, 4]