Python中关于列表的增删改查,排序,遍历,反转等用法详解

    Python中列表的是很常见的数据类型之一,有点类似于java中的数组,但是使用起来比数组更加灵活。

       1.因为列表的数据项不需要具有相同的数据类型。

       2.创建一个列表,不需要声明。只要把逗号分隔的不同的数据项使用方括号括起来即可

       3.列表序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推

       4.列表可以进行的操作包括索引,切片,加,乘,检查成员,截取等等。

1.创建列表和访问列表中的值

1.创建列表
ls1 =["hello",1,3,"你好",3.14,'true'] 
print("列表第一个值:",ls1[0])  
ls2=["helllo",[1,3],["hello"],3.14,"哈哈哈"]  #注意:列表里面还可以嵌套列表,类似多维数组
print(ls2[1])  #取ls2的中第2个元素
print(ls2[1][1]])   #取ls2中第二个元素中的第二个元素  

----执行结果如下:---------
列表第一个值: hello
[1, 3]
3

2.访问列表中的值(截取子列表),这个对列表中值的操作跟字符串差不多
ls1 =["hello",1,3,"你好",3.14,'true'] 
print("取第一个到第五个值:",ls1[1:5])   #这里类似于字符串中的取子串,所以列表的子串还是列表
print("从第二个开始:",lsr[2:])
==========================================
执行结果如下:
[1, 3, '你好', 3.14]
[3, '你好', 3.14, 'true']

2.遍历列表的值,for和while两种方式

1.使用for循环语句遍历列表的值
ls1 =["hello",1,3,"你好",3.14,'true']
num=1
for i in ls1:   #使用for循环
    print("列表的第%d的值:"%(num),i)
    num  +=1
-------------------------------------
执行结果如下:
------------------------------------
列表的第1的值: hello
列表的第2的值: 1
列表的第3的值: 3
列表的第4的值: 你好
列表的第5的值: 3.14
列表的第6的值: true

2.使用while语句遍历列表的值,使用while进行遍历,但是没有for方便好用
ls1 =["hello",1,3,"你好",3.14,'true']
i=0
while i<len(ls1):
    print("打印ls1的第%d个值:"%(i+1),ls1[i])
    i += 1
========================================
执行结果如下:
打印ls1的第1个值: hello
打印ls1的第2个值: 1
打印ls1的第3个值: 3
打印ls1的第4个值: 你好
打印ls1的第5个值: 3.14
打印ls1的第6个值: true

3.对列表中元素的“增,删,改,查”操作

     3.1往列表中增加元素有三种方法,insert,append和extend

#1.第一个种方式往列表里追加,放在最后(可以单个数据项,也可以是集合类)
ls2=["helllo",[1,3],["hello"],3.14,"哈哈哈"]
ls2.append("append_1")   #追加的数据项可以是基本数据项
print(ls2)
ls2.append(["111",111])  #追加的数据也可是列表,把整个列表当成一个数据项
print(ls2)
------------------------------------------------------------------------
执行结果如下:
------------------------------------------------------------------------
['helllo', [1, 3], ['hello'], 3.14, '哈哈哈', 'append_1']
['helllo', [1, 3], ['hello'], 3.14, '哈哈哈', 'append_1', ['111', 111]]
--------------------------------------------------------------------------

#2.通过extend可以将另一个集合中的元素逐一添加到列表中(插入另外一个集合)
ls2=["helllo",[1,3],["hello"],3.14]
ls1=[123,456,"aaa",["bbb",789]] #将ls1中的数据项一一追加到ls2中,但如果ls1的数据项是个列表,则不会打散。
ls2.extend(ls1)
print(ls2)
ls2.extend("aaaa")  #只能extend的是集合,字符串也算集合,会将字符串打散插入
print(ls2)
-----------------------------------------------------------------------
执行结果如下:
-----------------------------------------------------------------------
['helllo', [1, 3], ['hello'], 3.14, 123, 456, 'aaa', ['bbb', 789]]
['helllo', [1, 3], ['hello'], 3.14, 123, 456, 'aaa', ['bbb', 789], 'a', 'a', 'a', 'a']
------------------------------------------------------------------------

#3.insert(index, object) 在指定位置index前插入元素数据项(可以单个数据项,也可以是集合类)
ls2=["helllo",[1,3],["hello"],3.14,"哈哈哈"]
ls1=[1,3,"222"]
ls2.insert(1,"myinsert")  #在index为1的位置插入数据项
print(ls2)
ls2.insert(1,ls1)  #在index为1的位置插入一个列表作为数据项
print(ls2)
--------------------------------------------------------------------------
执行结果如下:
-------------------------------------------------------------------------
['helllo', 'myinsert', [1, 3], ['hello'], 3.14, '哈哈哈']
['helllo', [1, 3, '222'], 'myinsert', [1, 3], ['hello'], 3.14, '哈哈哈']

  3.2修改列表中值

#1.修改列表中值,直接用赋值=即可
ls2=["helllo",[1,3],["hello"],3.14,"哈哈哈"]
ls2[0]="你好"
print(ls2)
---------------------------------
['你好', [1, 3], ['hello'], 3.14, '哈哈哈']

 3.3列表中查找某个元素是否存在,存在所在的位置

     1.python中查找的常用方法为:查看某个元素是否在列表中

       in(存在),如果存在那么结果为true,否则为false

       not in(不存在),如果不存在那么结果为true,否则fals

#方法1判断某个元素是否在列表中,但是不返回具体位置,有为true,无为false.
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈"]
if "hello" in ls2:
    print ("hello在ls2中")
else :
    print("没找到")
----------------------------------
执行结果:hello在ls2中
---------------------------------
#同理not in用法一样

   2.使用index()和count()等函数也可以实现

#1.用index函数,如果存在返回角标
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈",3.14,3.14]
print(ls2.index(3.14)) #如果有多个数据项存在方,返回第一个角标位置
#print(ls2.index("3.14"))  #这里index()用法和字符串的使用一样,如果没有则抛出异常
----------------------------------------------------------
3
ValueError: '3.14' is not in list
---------------------------------------------------------

#2.使用count()统计函数,也可以查询是否存在,但是无法返回角标位置
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈",3.14,3.14,3.14]
print(ls2.count(3.14))
print(ls2.count("aaaa")) #没有的话,统计个数为0
---------------------------------------------------------
4
0

3.4.删除列表中的元素:列表元素的常用删除方法有:

  1.  del:根据下标进行删除
  2. pop:删除最后一个元素
  3. remove:根据元素的值进行删除
#1.del根据角标去索引删除元素数据
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈",3.14,3.14,3.14]
del ls2[0] #主要这里del的用法,跟别的函数不一样。有点类似sql,删除角标为0的元素
print(ls2)
-----------------------------------------------
结果如下:
[[1, 3], ['hello'], 3.14, '哈哈哈', 3.14, 3.14, 3.14]
------------------------------------------------
#2.默认pop(),无参数的话删除最后一个,有参数index的话,按角标删除,跟del功能相似
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈",3.14,3.14,3.14]
ls2.pop(0)
print(ls2)
ls2.pop()
print(ls2)
---------------------------------------------
[[1, 3], ['hello'], 3.14, '哈哈哈', 3.14, 3.14, 3.14]
[[1, 3], ['hello'], 3.14, '哈哈哈', 3.14, 3.14]

----------------------------------------------

#3.remove:根据元素的值进行删除,比较常用
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈",2.5,3,3.14,2.5,3]
ls1=["hello",123]
ls2.remove(3) #注意如果有多个值话,只删除第一个值。
print(ls2)
-----------------------------------------------------
['hello', [1, 3], ['hello'], 3.14, '哈哈哈', 2.5, 3.14, 2.5, 3]

4.列表元素反转和排序

#对列表进行元素进行反转reverse
ls2=["hello",[1,3],["hello"],3.14,"哈哈哈",2.5,3,3.14,2.5,3]
ls1=[4,3,2,1,5,8,"11","22","aa","bb"]
ls1.reverse()
print(ls1) #注意:print(ls1.reverse()) 结果是none,不会反转的。
print(ls1[::-1])  #字符串的可以用的反转函数这里不行。
-----------------------------------------
['bb', 'aa', '22', '11', 8, 5, 1, 2, 3, 4]
[4, 3, 2, 1, 5, 8, '11', '22', 'aa', 'bb']
['bb', 'aa', '22', '11', 8, 5, 1, 2, 3, 4]
---------------------------------------------

#对列表元素进行排序sort
ls2=[4,3,2,1,5,8]
ls3=["bb","11","cc","aa"]
#ls1=[4,3,2,1,5,8,"aa"]
ls2.sort()
ls2.sort(reverse=True) #sort添加这个参数,排序后反转,相当于倒叙
ls3.sort()
#ls1.sort()  #出错,如果要使用排序,必须列表中类型要是同一个数据类型的数据
#print(ls1)
print(ls2)
print(ls3)
----------------------------
[1, 2, 3, 4, 5, 8]
['11', 'aa', 'bb', 'cc']
----------------------------

5.列表的其他操作,基本跟字符串类似

#1.直接将两个列表合并
ls2=[4,3,2,1,5,8]
ls3=[1,3,9,7]
ls1=["111","aaa"]
print(ls3+ls2) #这种用法跟字符串拼接一样
print(ls1+ls2)

#2.计算列表的长度len
ls2=[4,3,2,1,5,8]
print(len(ls2))

#3.复制列表元素
ls2=[4,3,2,1,5,8]
print(ls2*2)

猜你喜欢

转载自blog.csdn.net/qq_26442553/article/details/81533995