Python列表操作

Posted linan-8888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表操作相关的知识,希望对你有一定的参考价值。

# encoding=utf-8

‘‘‘
所谓的可迭代对象指的是可以被for循环的对象
list   就是一个类  ;可迭代对象; 列表是有序的(可以通过索引查找元素)
补充说明:字符串一旦创建不能修改,可以通过索引查找值但不能修改值;列表可以通过索引查找值和修改值
1、列表是可变的,字符串是不可变的
2、列表中的元素可以是任何对象,列表相当于一个集合
3、列表(链表)的存储,每个元素是不连续,但是一个元素内存中保存该元素的值及下一个元素的地址,这样系统才能自动索引列表的所有元素
4、列表的取值;①通过索引进行取值list[index];②通过切片进行取值list[start:end];
5、列表的元素是可以被修改;①通过索引进行修改list[index]=obj;②通过切片进行修改list[1:3]=[True,Fasle];
6、删除列表的元素;①可以直接用 del list[index];②通过切片删除del list[start:end]
7、in 操作:string in list: 判断string是否在list中存在,是和list元素比较,不是和元素中的子元素比较
         例如:‘石正文‘ in [1, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True] ——> False

8、字符串转换列表: 可以直接用list(string),内部使用for循环
9、列表转换字符串:①通过for循环实现(有数字类型元素);
                   ②如果列表中的元素只有字符串的时候,可以通过join方法实现

#list类中提供的方法:
ps:删除的方法有5个:①pop(index)  ②remove(values)  ③del list[index]  ④del list[start:end]   ⑤clear
1、append(self,p_object):追加元素,在列表后面追加元素,不产生新的对象,故无需变量赋值
2、clear(self):清空列表
3、copy(self):浅拷贝,只拷贝索引,不产生新的对象
4、count(self,values):计算values元素在列表中出现的次数
5、extend(self,iterable):追加可迭代对象(内部相当于对迭代对象进行循环并使用append()方法进行追加元素),iterable表示可迭代对象;
               例如:li.extend("不得了")——>增加了三个元素(""不,"得","了")【任何可迭代对象都能实现,包括元组、列表、字符串】
6、index(self, value, star=None,stop=None):查找元素的索引位置,从左到右找,如果有重复的元素,找到第一个就结束,如果元素不存在,报错
7、insert(self,index,p_object):插入元素,在index位置插入p_object新元素
8、pop(self,index=None):pop默认删除最后一个元素,也可以传入索引位置进行删除,并且被删除的值可以被获取
   remove(self,value):删除列表中的指定值,左边优先,如果有重复的元素,只删除最左边的一个
9、reverse(self):将当前列表进行反转
10、sort(self,key,reverse):排序;不传递reverse参数默认是按升序排序,传递reverse=True时,表示按降序排序[key,cmp参数欠]

‘‘‘
li = [1, 12, 34, ["石正文", "高淇"], "sfe", True]  # 通过list类 创建的对象
# 索引、下标提取数据
print(li[1])
‘‘‘2‘‘‘

# 切片取值,结果也是列表
print(li[0:4])  # 包头不包尾
print(li[0:-1])
‘‘‘ 
[1, 12, 34, [‘石正文‘, ‘高淇‘]]  
[1, 12, 34, [‘石正文‘, ‘高淇‘], ‘sfe‘]
‘‘‘

#for循环
for lists in li:
    print(lists)
‘‘‘1    12    34   [‘石正文‘, ‘高淇‘]   sfe  True ‘‘‘

#列表元素被修改,直接索引位置
li[1]=200
print(li)
‘‘‘[1, 200, 34, [‘石正文‘, ‘高淇‘], ‘sfe‘, True] ‘‘‘
#通过切片可以进行修改
li[1:3]=[True,False]
print(li)
‘‘‘[1, True, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True]‘‘‘

#删除
del li[1]
print(li)
‘‘‘[1, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True]‘‘‘

# in操作
print("sfe" in li)
‘‘‘ True ‘‘‘

#字符串转换列表,可以直接使用list类进行转换
s = "afeefwef"
print(list(s))
‘‘‘ [‘a‘, ‘f‘, ‘e‘, ‘e‘, ‘f‘, ‘w‘, ‘e‘, ‘f‘] ‘‘‘

#将列表转换字符串
li = [11,22,33,"123","alex"]
s = ""
for lists in li:
  s += str(lists)
print(s)

‘‘‘ 112233123alex  ‘‘‘

#如果列表中的元素都是字符串的时候可以通过join进行连接
li = ["123","alex"]
print("".join(li))
‘‘‘  123alex  ‘‘‘


#列表类函数
li = [11,22,33,44]
v = li.append(5)
print(v)        #输出结果为None,不需要append进行对象接收
‘‘‘ None ‘‘‘
print(li)
‘‘‘[11, 22, 33, 44, 5]‘‘‘

#copy浅拷贝
li = [11,22,[True,False],22,44]
v = li.copy()
print(v)
‘‘‘[11, 22, [True, False], 22, 44] ‘‘‘

#count元素出现的次数
print(li.count(22))
‘‘‘ 2 ‘‘‘
#append()和extend()函数的使用和对比
#extend对象是可迭代对象
li.append(["12","ew"])
li.append("不得了")
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘] ‘‘‘
li.extend(["12","ew"])
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘]‘‘‘
li.extend("不得了")
‘‘‘
相当于:
for i in "不得了":
    li.append(i)
‘‘‘
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘, ‘不‘, ‘得‘, ‘了‘]‘‘‘

li.extend(("你好","hello",True))
print(li)
‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘, ‘你好‘, ‘hello‘, True]‘‘‘

#index()根据值获取当前值的索引位置,左边优先;找不到报错
li = [11,22,33,22,44]
print(li.index(22))
#print(li.index(55))   #报错
‘‘‘ 1 ‘‘‘

#insert(index,p_object)插入元素,在index位置插入p_object新对象
li.insert(2,"def")
print(li)
‘‘‘ [11, 22, ‘def‘, 33, 22, 44] ‘‘‘

#pop(self,index):通过指定索引位置删除,无指定索引默认是最后一个元素,并且可以获取删除的元素值
li = [11,22,33,22,44]
v = li.pop()
print(li,v)
‘‘‘ [11, 22, 33, 22] 44 ‘‘‘
s = li.pop(2)
print(li,s)
‘‘‘ [11, 22, 22] 33 ‘‘‘

#reverse(self):反转 (最后一个元素变第一个元素)

li = [11,22,33,22,44]
li.reverse()
print(li)
‘‘‘[44, 22, 33, 22, 11]‘‘‘


#sort(self,key,reverse)默认升序,降序需要传递参数reverse=True
li = [11,44,33,22,22]
li.sort()
print(li)
‘‘‘[11, 22, 22, 33, 44]‘‘‘
li.sort(reverse=True)
print(li)
‘‘‘[44, 33, 22, 22, 11]‘‘‘

 

以上是关于Python列表操作的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第25篇):将多行字符串拆分成列表

Python代码阅读(第40篇):通过两个列表生成字典

Python代码阅读(第13篇):检测列表中的元素是否都一样

如何在片段中填充列表视图?

setOnItemClickListener没有对点击片段进行任何操作

30 段 Python 实用代码