一、二、三、四者区别
列表,序列,元组,元素一直搞得挺晕的,参考他人写的文章后,将大脑中的记忆经过排序一下,再作个总结.估计大脑存储的结构位置也发生了变化.
元素:
1.列表,元组属于python内建的序列中的两种,序列是数据结构,组成他的最小单位是元素
#删除序列A中的元素A,通过函数list()将序列转成列表再删除
>>>A = list('Alice')
>>>del A[0]
>>>A
#删除列表names的元素
>>>names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl']
>>>del names[0]
>>>names
[ 'Beth', 'Cecil', 'Dee-Dee', 'Earl']
#因为元组是不可变的,所以要用函数list()转成列表进行删除后再用tuple()转回
>>> b=(1,2,3)
>>> del b[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>> b=list(b)
>>> del b[0]
>>> b
[2, 3]
>>> b=tuple(b)
>>> b
(2, 3)
列表:可变
1.可以增加列表内容 append
2.可以统计某个列表段在整个列表中出现的次数 count
3.可以插入一个字符串,并把整个字符串的每个字母拆分当作一个列表段追加到列表当中 extedn
4.可以查询某个列表段在整个列表的位置 index
5.可以在指定位置插入一个列表段 insert
6.可以删除列表的最后一个列表段 pop
7.可以删除指定列表中的某个列表段 remove
8.可以正向反向排序 reverse
9.可以按字母或数字排序 sort
10.定义列表时候使用中括号"[]"
注意:在列表当中,假如某两个列表段相同,不管是使用index还是remove都是统计的最靠前的列表段
元组:不可变
1.可以统计某个元组段在整个元组中出现的次数 count
2.可以查询某个元组段在整个元组中的元组号 index
3.定义元组时候使用小括号"()"
序列:包含列表和元组还有字符
>>> greeting = 'Hello'
>>> greeting[0]
'H'
列表和元组转换为"字符串"(注意字符串输出形式没有()和[]则必须依靠join函数
>>> "".join(tuple(s)) 'xxxxx' >>> "".join(list(s)) 'xxxxx' >>> str(tuple(s)) "('x', 'x', 'x', 'x', 'x')" >>> |
二、二者的使用方法
列表
#定义列表
>>> name_list = ['sean','tom','jack','Angelia','Daisy','jack']
#查看定义的列表
>>> name_list
['sean', 'tom', 'jack', 'Angelia', 'Daisy', 'jack']
#增加david列表段
>>> name_list.append('david')
>>> name_list
['sean', 'tom', 'jack', 'Angelia', 'Daisy', 'jack', 'david']
#统计david列表段出现次数
>>> name_list.count('david')
>>> name_list.count('jack')
#使用extend向列表中增加列表段
>>> name_list.extend('Hello,My name is sean')
>>> name_list
['sean', 'tom', 'jack', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a', 'n']
#查看列表段所在的索引号,注意这里统计的jack为第一个jack id号
>>> name_list.index('jack')
>>> name_list.index('tom')
#向索引号为2的地方插入Adam
>>> name_list.insert(2,'Adam')
>>> name_list
['sean', 'tom', 'Adam', 'jack', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a', 'n']
#删除最后一个列表段
>>> name_list.pop()
'n'
>>> name_list
['sean', 'tom', 'Adam', 'jack', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a']
#删除指定列表段,注意这里删除的是第一个jack
>>> name_list.remove('jack')
>>> name_list
['sean', 'tom', 'Adam', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a']
#对整个列表进行倒序
>>> name_list.reverse()
>>> name_list
['a', 'e', 's', ' ', 's', 'i', ' ', 'e', 'm', 'a', 'n', ' ', 'y', 'M', ',', 'o', 'l', 'l', 'e', 'H', 'david', 'jack', 'Daisy', 'Angelia', 'Adam', 'tom', 'sean']
#对整个列表进行倒序
>>> name_list.reverse()
>>> name_list
['sean', 'tom', 'Adam', 'Angelia', 'Daisy', 'jack', 'david', 'H', 'e', 'l', 'l', 'o', ',', 'M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 's', 'e', 'a']
#对整个列表进行列表段的首字母进行排序
>>> name_list.sort()
>>> name_list
[' ', ' ', ' ', ',', 'Adam', 'Angelia', 'Daisy', 'H', 'M', 'a', 'a', 'david', 'e', 'e', 'e', 'i', 'jack', 'l', 'l', 'm', 'n', 'o', 's', 's', 'sean', 'tom', 'y']
>>>
元组
#定义元组name_tuple
>>> name_tuple = ('xiaoming','xiaohong','xiaoli','xiaozhang','xiaoming')
>>> name_tuple
('xiaoming', 'xiaohong', 'xiaoli', 'xiaozhang', 'xiaoming')
#统计xiaoming、xiaohong在元组内出现的次数
>>> name_tuple.count('xiaoming')
>>> name_tuple.count('xiaohong')
#查询xiaoming、xiaohong、xiaozhang在元组内的id号
>>> name_tuple.index('xiaoming')
>>> name_tuple.index('xiaohong')
>>> name_tuple.index('xiaozhang')
>>>
#尝试增加一个元组单元
>>> name_tuple.append('xiaowang')
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
name_tuple.append('xiaowang')
AttributeError: 'tuple' object has no attribute 'append'
>>>
#元组的元素是不可变的,元组的元素的元素是可变的
>>> tuple_A = (1,2,{'k1':'v1'})
>>> for i in tuple_A:
... print i
...
{'k1': 'v1'}
#更改元素
>>> tuple_A[2]['k1'] = 'v2'
>>> for i in tuple_A:
... print i
...
{'k1': 'v2'}
>>>