python:列表和元组

前面的学习中,我们已经知道了两种python的数据类型:int和str。再强调一下对数据类型的理解,这个世界是由数据组成的,数据可能是数字(注意,别搞混了,数字和数据是有区别的),也可能是文字、或者是声音、视频等。在python中(其它高级语言也类似)把状如2,3这样的数字划分为一个类型,把状如“你好”这样的文字划分一个类型,前者是int类型,后者是str类型(这里就不说翻译的名字了,请看官熟悉用英文的名称,对日后编程大有好处,什么好处呢?谁用谁知道!)。

前面还学习了变量,如果某个变量跟一个int类型的数据用线连着(行话是:赋值),那么这个变量我们就把它叫做int类型的变量;有时候还没赋值呢,是准备让这个变量接收int类型的数据,我们也需要将它声明为int类型的变量。不过,在python里面有一样好处,变量不用提前声明,随用随命名。

这一讲中的list类型,也是python的一种数据类型。

LIST在python中具有非常强大的功能。

定义

在python中,用方括号表示一个list,[ ]

在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。看下面的例子,特别注意阅读注释。 

定义一个列表

>>> names = ['zhangqiang','wangzhaoyang','lilei']

通过下标访问列表中的元素,下标从0开始计数

>>> names[0]
'zhangqiang'
>>> names[1]
'wangzhaoyang'
>>> names[2]
'lilei'
>>> names[-2]####还可以倒着取
'wangzhaoyang'
>>> names[-3]
'zhangqiang'
>>> names[-1]

列表切片

>>> names = ['zhangqiang','wangzhaoyang','lilei','jack','tom']
>>> names[1:4]  ####左开右闭
['wangzhaoyang', 'lilei', 'jack']
>>> names[1:-1]
['wangzhaoyang', 'lilei', 'jack']
>>> names[0:4]
['zhangqiang', 'wangzhaoyang', 'lilei', 'jack']
>>> names[:4]
['zhangqiang', 'wangzhaoyang', 'lilei', 'jack']
>>> names[0:]
['zhangqiang', 'wangzhaoyang', 'lilei', 'jack', 'tom']
>>> names[0::2]  ##后面的2是代表步长,每隔一个元素,就取一个
['zhangqiang', 'lilei', 'tom'] >>> names[::2] ['zhangqiang', 'lilei', 'tom']

追加

>>> names = ['zhangqiang','wangzhaoyang','lilei','jack','tom']
>>> names.append('zhangliang')
>>> names
['zhangqiang', 'wangzhaoyang', 'lilei', 'jack', 'tom', 'zhangliang']

插入

>>> names.insert(2,'zhangyang')
>>> names
['zhangqiang', 'wangzhaoyang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang'

修改

>>> names
['zhangqiang', 'wangzhaoyang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']
>>> names[1]= 'ligang'
>>> names
['zhangqiang', 'ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']

删除

>>> names
['zhangqiang', 'ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']
>>> del   names[0]
>>> names
['ligang', 'zhangyang', 'lilei', 'jack', 'tom', 'zhangliang']

  >>> names.remove('zhangyang')   #删除执行元素
  >>> names
  ['ligang', 'lilei', 'jack', 'tom', 'zhangliang']  

 >>> names.pop()  #删除最后一个
 'zhangliang'
 >>> names
 ['ligang', 'lilei', 'jack', 'tom']

扩展

>>> names = ['ligang', 'lilei', 'jack', 'tom']
>>> list1 = [1,2,3,4]
>>> names.extend(list1)
>>> names
['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4]

拷贝

深拷贝和浅拷贝

统计

>>> names
['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4, 1, 3, 5]>>> names.count(1)
2

排序

>>> names
['ligang', 'lilei', 'jack', 'tom', 1, 2, 3, 4, 1, 3, 5]
>>> names.sort()  # 不同数据类型不能放在一起排序
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

 >>> names[4]='1'
 >>> names[5]='2'
 >>> names[6]='3'
 >>> names
 ['jack', 'ligang', 'lilei', 'tom', '1', '2', '3']
 >>> names.sort()
 >>> names
 ['1', '2', '3', 'jack', 'ligang', 'lilei', 'tom']

 

反转

>>> names.reverse()
>>> names
['tom', 'lilei', 'ligang', 'jack', '3', '2', '1']

获取下表

>>> names
['tom', 'lilei', 'ligang', 'jack', '3', '2', '1']
>>> names.index('ligang')
2

元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

语法

test_tuple = ('tom', 'lilei', 'ligang', 'jack','tom')

它只有2个方法,一个是count,一个是index,

>>> test_tuple.count("tom")
2
>>> test_tuple.index("tom")
0
原文地址:https://www.cnblogs.com/wzy23/p/11424318.html