python字典,列表(list)与元组(tuple)实例教程大全

发布时间:2019-07-17编辑:脚本学堂
有关python字典、python列表、python元组的实例教程,最全面的python列表、元组、列表用法的例子,需要的朋友参考下。

一,python列表

python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据。比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表的。

python列表代码:
 

>>> list1 = ['zhangxueyou','liudehua','wanglijuan','liming','shabie']
>>> list1
['zhangxueyou', 'liudehua', 'wanglijuan', 'liming', 'shabie']
>>> list2 = [000001,000002,000003,000004,000005,000006]
>>> list2
[1, 2, 3, 4, 5, 6]
>>>

变量list1,list2都是一个列表的实例,可以使用len()函数获得列表的长度(字典中的元素的个数):
 

>>> list1 = ['zhangxueyou','liudehua','wanglijuan','liming','shabie']
>>> list1
['zhangxueyou', 'liudehua', 'wanglijuan', 'liming', 'shabie']
>>> list2 = [000001,000002,000003,000004,000005,000006]    #其实这里面写成字符串更合适
>>> list2
[1, 2, 3, 4, 5, 6]
>>> len(list1)
5
>>> len(list2)
6
>>>

可以使用索引来引用列表中的元素,注意:列表中的索引是从0开始的,并且在列表中还支持负索引,实例如下:
 

>>> list1[0]
'zhangxueyou'
>>> list1[2]
'wanglijuan'
>>> list2[1]
2
>>> list1[-1]
'shabie'
>>> list2[-2] #这就是负索引的实例
5
>>>

当访问的下标越界的时候就会报Index error错:
 

>>> list1[78]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>>
 

所以,记得在操作python的列表的时候不要越界,记得最后一个元素的索引是:len(list1)-1.

当你要取得最后一个元素的时候你除了记住索引之外还有一个更机智的办法即使使用python的负索引的方法:
 

1 >>> list1[len(list1)-1]
2 'shabie'
3 >>> list1[-1]
4 'shabie'
5 >>>
 

list是一个可以变的有序列表,因此可以往你自己的列表中添加和删除元素:在末尾添加元素用的是append()方法,在指定的位置插入元素使用的是insert()方法。
 

#在列表末尾追加元素
>>> list1.append('xijinping')
>>> list1
['zhangxueyou', 'liudehua', 'wanglijuan', 'liming', 'shabie', 'xijinping']
>>> list2.append(7)
>>> list2
[1, 2, 3, 4, 5, 6, 7]
>>>
#也可以在指定的位置上添加元素
...
>>> list1.insert(1,'luoting')
>>> list1
['zhangxueyou', 'luoting', 'liudehua', 'wanglijuan', 'liming', 'shabie', 'xijinping']
>>> list2.insert(0,8)
>>> list2
[8, 1, 2, 3, 4, 5, 6, 7]
>>>

在列表中删除元素:删除末尾的元素使用的是pop()方法,删除指定位置的元素使用pop(i),其中i是索引下标,
 

>>> list1
['zhangxueyou', 'luoting', 'liudehua', 'wanglijuan', 'liming', 'shabie', 'xijinping']
>>> list1.pop()
'xijinping'
>>> list1
['zhangxueyou', 'luoting', 'liudehua', 'wanglijuan', 'liming', 'shabie']
>>>
>>> list1.pop(0)
'zhangxueyou'
>>> list1
['luoting', 'liudehua', 'wanglijuan', 'liming', 'shabie']
>>> list2.pop()
7
>>> list2
[9, 8, 1, 2, 3, 4, 5, 6]
>>> list2.pop(0)
9
>>> list2
[8, 1, 2, 3, 4, 5, 6]
>>>

若想替换list中的某个元素,可以直接把该元素赋值给对应的元素下标即可:
 

1 >>> list1
2 ['luoting', 'liudehua', 'wanglijuan', 'liming', 'shabie']
3 >>> list1[2] = "wyl"
4 >>> list1
5 ['luoting', 'liudehua', 'wyl', 'liming', 'shabie']
6 >>>
 

在一个list中可以有不同的数据类型,可以有字符串类型,整型,或者bool等。
 

1 >>> list3 = ['baba','mama',123,True]
2 >>> list3
3 ['baba', 'mama', 123, True]
4 >>>
 

list的元素中也可以有另外一个list,就相当于一个循环的嵌套一样。
 

1 >>> list4 = ['wang','wu','luo',['lang','luo','zhang'],'kua']
2 >>> list4
3 ['wang', 'wu', 'luo', ['lang', 'luo', 'zhang'], 'kua']
4 >>>
 

在这个列表中,要取到‘lang’可以使用下标索引:list4[3][1],这就相当于c语言中的二维数组,同样的还可以层层递进的写到三维数组,四维数组等。
 

1 >>> list4[3][1] 2 3 'luo' 4 5 >>> 

如果,一个列表中一个元素都都没有的话,就是一盒空列表:
1 >>> 2 >>> list5 = [] 3 >>> len(list5) 4 0 5 >>> 

python列表的高级应用:

1.用某个固定的值初始化列表:
 

1 >>> initial_value = 0
2 >>> list_length = 5
3 >>> sample_list = [initial_value for i in range(10)]
4 >>> sample_list = [initial_value]*list_length
5 >>> sample_list
6 [0, 0, 0, 0, 0]
7 >>>

2.产生一个数制递增的列表:
 

1 >>> num_inc_list = range(30)
2 >>> num_inc_list
3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
4 >>>

3.创建连续的list
 

 L = range(1,5)      #即 L=[1,2,3,4],不含最后一个元素
 L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

1 >>> L = range(1,5)
2 >>> L
3 [1, 2, 3, 4]
4 >>> L = range(1,20,3)
5 >>> L
6 [1, 4, 7, 10, 13, 16, 19]
7 >>>

list的方法
L.append(var)   #追加元素
L.insert(index,var)
L.pop(var)      #返回最后一个元素,并从list中删除之
L.remove(var)   #删除第一次出现的该元素
 

1 >>> list6 = [1,2,3,4,5,6,4,5,12,65,4]
2 >>> list6
3 [1, 2, 3, 4, 5, 6, 4, 5, 12, 65, 4]
4 >>> list6.remove(4)
5 >>> list6
6 [1, 2, 3, 5, 6, 4, 5, 12, 65, 4]
7 >>>

L.count(var)    #该元素在列表中出现的个数
 

1 >>> list6 = [1,2,3,4,5,6,4,5,12,65,4]
2 >>> list6
3 [1, 2, 3, 4, 5, 6, 4, 5, 12, 65, 4]
4 >>> list6.remove(4)
5 >>> list6
6 [1, 2, 3, 5, 6, 4, 5, 12, 65, 4]
7 >>>
8 >>> list6.count(4)
9 2
10 >>>

L.index(var)    #该元素的位置,无则抛异常
 

1 >>> list6
2 [1, 2, 3, 5, 6, 4, 5, 12, 65, 4]
3 >>>
4 >>> list6.count(4)
5 2
6 >>> list6.index(5)
7 3
8 >>>

L.extend(list6)  #追加list6,即合并list到L上
 

1 >>> L
2 [1, 4, 7, 10, 13, 16, 19]
3 >>> L.extend(list6)
4 >>> L
5 [1, 4, 7, 10, 13, 16, 19, 1, 2, 3, 5, 6, 4, 5, 12, 65, 4]
6 >>>
 

这里注意,使用extend函数可以一次在一个列表中插入任意多个值,而不必须每次只使用append()一次一值的插入:

L.sort()        #排序

L.reverse()     #倒序
 

1 >>> L
2 [1, 4, 7, 10, 13, 16, 19, 1, 2, 3, 5, 6, 4, 5, 12, 65, 4]
3 >>> L.sort()
4 >>> L
5 [1, 1, 2, 3, 4, 4, 4, 5, 5, 6, 7, 10, 12, 13, 16, 19, 65]
6 >>> L.reverse()
7 >>> L
8 [65, 19, 16, 13, 12, 10, 7, 6, 5, 5, 4, 4, 4, 3, 2, 1, 1]
9 >>>

list 操作符:,+,*,关键字del
a[1:]       #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4       #为[2,2,2,2]
del L[1]    #删除指定下标的元素
del L[1:3]  #删除指定下标范围的元素
 

1 >>> L
2 [65, 19, 16, 13, 12, 10, 7, 6, 5, 5, 4, 4, 4, 3, 2, 1, 1]
3 >>> del L[1]
4 >>> L
5 [65, 16, 13, 12, 10, 7, 6, 5, 5, 4, 4, 4, 3, 2, 1, 1]
6 >>> del L[0:3]
7 >>> L
8 [12, 10, 7, 6, 5, 5, 4, 4, 4, 3, 2, 1, 1]
9 >>>

复制list:
L1 = L      #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:]   #L1为L的克隆,即另一个拷贝。
1 >>> l1 = L 2 >>> l1 3 [12, 10, 7, 6, 5, 5, 4, 4, 4, 3, 2, 1, 1] 4 >>> l1 = L[:]