导语
在之前的关于Python的分享中对于基本数据类型中字符串、布尔值等做了详细的分享。接下来的内容就是在Python中的另一个比较重要的基本数据类型列表,关于列表在之前对于字符串进行切分的时候简单的提到过这个系列的分享就是对于列表的内容的扩展。
文章目录
- 列表(list)
- for循环
- while循环
- 列表基本操作
- 列表中级操作
- 列表高级操作
- def append(self, *args, **kwargs)
- def clear(self, *args, **kwargs)
- def copy(self, *args, **kwargs)
- def count(self, *args, **kwargs)
- def extend(self, *args, **kwargs)
- def index(self, *args, **kwargs)
- def insert(self, *args, **kwargs)
- def pop(self, *args, **kwargs)
- def remove(self, *args, **kwargs)
- def reverse(self, *args, **kwargs)
- def sort(self, *args, **kwargs)
- 总结
列表(list)
在Python中把使用中括括起来的,中间使用逗号分隔的一类数据表现叫做列表。列表中的元素可以是数字、字符串、列表、布尔值等等。其实对于列表来说其实就是一个高级集合,它的内部可以放入任何的数据类型。列表中的元素是以逗号为标志进行分隔。
li = [11,12,'nihui',[123,"age"],"test"];
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
对于一个列表来说,可以使用如下的方式,使用索引来获取列表中指定位置的值,同样列表也支持切片。通过切片的方式获取到的值也是一个列表。
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
print(li[0])
print(li[3:-1])
for循环
for item in li:
print(item)
while循环
i = 0;
while(i<len(li)):
print(li[i])
i+=1;
列表基本操作
在Python中对于列表中的元素是底层是使用链表的方式进行存储,所以说,在内存中对于列表的存储是不连续的。而链表这种数据结构它有着插入删除速度快,但是查找慢的缺点。从这个角度上讲列表的元素是可以被修改的。那么它是怎么被修改的呢?
按照索引进行修改
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
li[1]=100;
print(li)
删除的第一种方式
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
li[1]=100;
li[0]=["A","b",123]
# 删除的第一种方式
del li[1]
print(li)
通过切片的方式进行修改
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
li[1:3]=[123,1111]
print(li)
通过切片的方式进行删除
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
del li[2:6]
print(li)
支持in操作
li = [11,12,'nihui',[123,"age",[1,"A","B"]],"test"];
v = 12 in li
print(v)
列表中级操作
在类型转换的过程中,其实在内部操作中就是一个类似于循环的操作,但是这个操作有一个前提就是对于可迭代的对象,而对于数字这种不可迭代的对象则不能直接使用列表进行转换。
字符串到列表的转换
这样的转换会将整个的字符串按照字母进行分隔,这样的方式就是将一个字符串转换成了一个列表。
s = "wreqasdafdsfa"
new_li = list(s)
print(new_li)
列表转换为字符串
使用下面这种操作是不可以的,这种操作只是将整个列表当做一个大的字符串进行操作。
c_li = [11,22,33,"123","nihui"]
r = str(c_li)
print(r)
当既包含数字又包含字符串的时候,需要自己编写循环实现转换操作,通过这样的方式可以将一个列表转换成一个规定的字符串。如下面这段代码所示
c_li = [11,22,33,"123","nihui"]
s = ""
for i in c_li:
s = s + str(i)
print(s)
如果列表中的元素只有字符串的时候可以使用如下这种方式来进行列表到字符串之间的转换操作
s_li = ["123","1231","ninihiu"]
v = "".join(s_li)
print(v)
列表高级操作
def append(self, *args, **kwargs)
表示字符串尾部增加对应的参数。
在这里先来演示一个错误的示范
li = [11,22,33,44]
v = li.append(5)
print(v)
li = [11,22,33,44]
v = li.append(5)
print(v)
print(li)
通过上面的例子结合之前的分析,在操作一个列表的时候,如果进行了append操作,则不需要使用新的值进行保存。
def clear(self, *args, **kwargs)
清空列表信息
li = [11,22,33,44]
li.clear()
print(li)
def copy(self, *args, **kwargs)
列表拷贝操作:这里指的是浅拷贝,既然是拷贝操作,当完成拷贝之后就需要新值来进行接收操作。
li = [11,22,33,44]
v = li.copy()
print(v)
def count(self, *args, **kwargs)
计算元素出现的次数
li = [11,22,33,44]
v = li.count(22)
print(v)
def extend(self, *args, **kwargs)
扩展可迭代对象,也就是说将可迭代对象进行循环然后添加到list中。这里要注意extend和append的区别
li = [11,22,33,44]
li.extend([111,"nihui"])
print(li)
def index(self, *args, **kwargs)
查找某个值的索引位置。最左优先原则
li = [11,22,33,44]
v = li.index(33)
print(v)
def insert(self, *args, **kwargs)
使用这个方法可以在某个位置,插入对应的值
li = [11,22,33,44]
li.insert(0,99)
print(li)
def pop(self, *args, **kwargs)
删除一个数据,并且获取到对应的值,默认情况下删除最后一个元素。
li = [11,22,33,44]
v = li.pop();
v1 = li.pop(1);
print(li)
print(v)
print(v1)
def remove(self, *args, **kwargs)
按照从左到右开始的指定值
li = [11,22,33,44]
li.remove(22)
print(li)
注意
这里总结一下删除列表中元素的方法,del 加索引或者切片的方式可以删除,使用pop、remove可以删除,clear也可以看做一个删除操作。
def reverse(self, *args, **kwargs)
将列表的元素进行首尾反转操作
li = [11,22,33,44]
li.reverse()
print(li)
def sort(self, *args, **kwargs)
将列表的元素的元素按照指定规则进行排序
li = [11,55,22,44,77]
li.sort()
print(li)
li.sort(reverse=True)
print(li)
总结
上面的内容就是对于列表的全部的基本功能的操作,从最简单的开始到分析每个方法,介绍了每个方法的使用规范,并赋上对应的示例。希望大家支持分享