python 列表使用-转载:python中列表的用法总结

一、list()函数

ls = list() #创建一个空列表。

st = {1,2,3,"a"} #集合类型

d = {1:"a",2:"b"} #字典类型

t = (1,2,3,"b") #元组类型

s = "厉害了,我的国!" #字符串类型

#将集合,字典,元组,字符串 类型转化为列表类型

ls1 =list(st)

ls2=list(d)

ls3=list(t)

ls4=list(s)print(ls)print(ls1)print(ls2)print(ls3)print(ls4)

程序运行结果:

[]

[1, 2, 3, "a"]

[1, 2]

[1, 2, 3, "b"]

["厉", "害", "了", ",", "我", "的", "国", "!"]

二、append()函数

ls1 = [1,2,3,4,5,6]

ls2= [1,2,3,4,5,6]

ls1.append(12)#可以添加列表,字典,元组,集合,字符串等

ls2.append([1,"a"]) #添加列表

ls2.append({2:"a",3:"hj"}) #添加字典

ls2.append((1,"k",3)) #添加元组

ls2.append({"1","2","h"}) #添加集合

ls2.append("123abc") #添加字符串

print(ls1.append(12)) #无返回值

print(ls1) #append()函数的操作对象是原列表。

print(ls2)

程序运行结果:

None

[1, 2, 3, 4, 5, 6, 12, 12]

[1, 2, 3, 4, 5, 6, [1, "a"], {2: "a", 3: "hj"}, (1, "k", 3), {"2", "1", "h"}, "123abc"]

三、clear()函数

ls = [1,2,3,"4",5,"a"]

ls.clear()#删除列表中的所有元素。

print(ls.clear()) #无返回值

print(ls) #返回的ls为空列表。

程序运行结果:

None

[]

四、copy()函数

ls = [1,2,3,[4,5,6]]

lt= ls.copy() #lt复制ls中的所有元素

ls.clear() #删除ls所有元素,lt中的元素没有被删除。

lk = ls #这不是复制,而是给列表ls新关联一个引用,即增加一个别名,ls和lt指向同一个内存地址。

print(id(ls),id(lk))print(lt)print(ls)

程序运行结果:

2161190907400 2161190907400[1, 2, 3, [4, 5, 6]]

[]

发现一个有趣的现象:

无论是修改原列表ls的内嵌套列表的元素,还是修改复制列表lt的内嵌套列表元素。列表ls和列表lt的内嵌套列表元素都将改变。

但修改列表ls或列表lt的其它非嵌套元素,都不改变对方相应的元素。

程序示例①:

ls = [1,2,3,[4,5,6]]

lt= ls.copy() #lt复制ls中的所有元素

ls[0] = "a" #对变列表ls中的第一个元素进行修改

ls[3][0] = "a" #对列表ls中第四个元素的第一个元素进行修改

print(lt) #列表lt的第一个元素不变,但第四个元素的第一个元素发生改变。

print(ls)

程序运行结果:

[1, 2, 3, ["a", 5, 6]]

["a", 2, 3, ["a", 5, 6]]

程序示例②:

ls = [1,2,3,[4,5,6]]

lt=ls.copy()

lt[0]= "a" #对变列表lt中的第一个元素进行修改

lt[3][0] = "a" #对列表lt中第四个元素的第一个元素进行修改

print(lt)print(ls) #列表ls的第一个元素不变,但第四个元素的第一个元素发生改变。

程序运行结果:

["a", 2, 3, ["a", 5, 6]]

[1, 2, 3, ["a", 5, 6]]

程序示例③:深层复制方法

importcopy

ls= [1,2,3,[7,"b",9],"a"]

lt1= copy.deepcopy(ls) #深层复制。

lt2 = copy.copy(ls) #浅层复制

ls[3][1] = "abc123" #改变原列表ls中内嵌套列表[7,"b",9] 中的“b”元素。深层复制的lt1列表对应位置元素不改变,但浅层复制改变。

print(ls)print("深层复制:",lt1)print("浅层复制:",lt2)

程序运行结果:

[1, 2, 3, [7, "abc123", 9], "a"]

深层复制: [1, 2, 3, [7, "b", 9], "a"]

浅层复制: [1, 2, 3, [7, "abc123", 9], "a"]

总结:ls.copy() 函数只能 copy 一层,即copy()复制是浅复制。

五、count()函数

ls = [1,2,3,5,4,5,5,5,5,"python"]print(ls.count(5)) #统计列表ls中 5 出现的次数

print(ls.count(0)) #列表ls中无0元素

print(ls.count("python")) #统计列表ls中 "python" 出现的次数。

程序运行结果:

501

六、extend()函数

程序示例①:

ls = [1,2,"a",[4,5,"a"]]

lt= [1,"abc","b",[1,2]]

ls.extend(lt)#返回值为空,将列表lt的元素添加到列表ls末尾。

print(ls.extend(lt))print(ls)print(lt) #列表lt元素不变

程序运行结果:

None

[1, 2, "a", [4, 5, "a"], 1, "abc", "b", [1, 2], 1, "abc", "b", [1, 2]]

[1, "abc", "b", [1, 2]]

程序示例②:

ls = [1,2,"a",[4,5,"a"]]

lt= [1,"abc","b",[1,2]]

ls.extend(lt[0:3]) #返回值为空,将列表lt中的 1, "abc", "b" 添加到列表ls末尾。

print(ls)print(lt) #列表lt元素不变

程序运行结果:

[1, 2, "a", [4, 5, "a"], 1, "abc", "b"]

[1, "abc", "b", [1, 2]]

七、index()函数

ls = [1,2,3,"a",3,5,"a",5,[1,7,"b"]]print(ls.index("a")) #返回列表ls中"a"第一次出现的位置。

print(ls.index("a",4)) #索引的起始位置为下标为4的元素,索引范围为 3, 5, "a", 5, [1, 7, "b"

print(ls.index("a",4,8)) #索引的起始位置为下标为4的元素,结束位置为下标为7的元素。索引范围 3, 5, "a", 5

print(ls.index(3))print(ls[8].index("b")) #返回列表ls内嵌套列表[1,7,"b"]中"b"第一次出现的位置

print(ls.index(0)) #列表ls无0,报错

结果:

3

6

6

2

2

---------------------------------------------------------------------------ValueError Traceback (most recent call last) in ()5 print(ls.index(3))6 print(ls[8].index("b")) #返回列表ls内嵌套列表[1,7,"b"]中"b"第一次出现的位置

----> 7 print(ls.index(0)) #列表ls无0,报错

ValueError: 0is not in list

八、insert()函数

程序示例①:

ls = [1,2,"a",["a",5,8]]

ls.insert(3,"b")#在列表ls下标为3的位置插入元素 1

ls.insert(3,1) #在列表ls下标为3的位置插入元素 "b"

ls[5].insert(0,"acv") #在列表ls的内嵌套列表["a",5,8],下标为0的位置插入字符串"acv"

print(ls)

程序运行结果:

[1, 2, "a", 1, "b", ["acv", "a", 5, 8]]

程序示例②:

ls = [1,2,3]

ls.insert(0,[1,2,3]) #插入列表

ls.insert(0,(1,2,3)) #插入元组

ls.insert(0,{1:"a",2:"b"}) #插入字典

ls.insert(0,{1,2,3}) #插入集合

print(ls)

程序运行结果:

[{1, 2, 3}, {1: "a", 2: "b"}, (1, 2, 3), [1, 2, 3], 1, 2, 3]

九、pop()函数

ls = [1,2,"a","y",[1,2,3],"b"]print(ls.pop(0)) #取出下标为0的元素,并从列表ls中删除。

print(ls.pop(3))print(ls.pop()) #默认取出列表ls最后一个元素,并删除。

print(ls) #列表中的 1 [1,2,3] "b" 元素已被删除。

结果:

1[1, 2, 3]

b

[2, "a", "y"]

十、remove()函数

ls1 = [1,2,"a",3,1,1,55,"a,1"]

ls2= [1,2,"a",3,1,1,55,"a,1"]

ls1.remove(1) #删除ls1中第一次出现的元素 1

ls2.remove("a") ##删除ls2中第一次出现的元素 "a"

print(ls1.remove(1)) #返回值为空

print(ls1)print(ls2)

结果:

None

[2, "a", 3, 1, 55, "a,1"]

[1, 2, 3, 1, 1, 55, "a,1"]

也可以使用python的保留字 del 对列表的元素或部分片段进行删除

语法:

① del <列表变量>[索引序列号]

② del <列表变量>[索引起始位置 :索引结束位置]

③ del <列表变量>[索引起始位置 :索引结束位置:步长]

程序示例:

ls1 = [1,2,3,4,"a",[1,2,3],5,6]

ls2= [1,2,3,4,"a",[1,2,3],5,6]

ls3= [1,2,3,4,"a",[1,2,3],5,6]del ls1[0] #删除列表ls1中下标为0的元素

print(ls1)del ls1[2:] #删除列表ls1中 起始下标为2,到结尾的元素

print(ls1)del ls2[2:6] #删除列表ls2中 起始下标为2,终止下标为6 之间的元素。

print(ls2)del ls3[1:6:2] #起始位置为2,终止位置为6,步长为2

print(ls3)

程序运行结果:

[2, 3, 4, "a", [1, 2, 3], 5, 6]

[2, 3]

[1, 2, 5, 6]

[1, 3, "a", 5, 6]

十一、reverse()函数

ls1 = [1,2,3,4,5,6,7,8,9]

ls1.reverse()#将列表ls1反转输出

print(ls1)

ls2= [2,5,8,9,4,1,2,6,2,1,3]

ls2.sort(reverse=True) #ls2.sort()默认将列表ls2按从小到大的序数排列。reverse=True 使排序后的列表反转,reverse=False 则不反转

print(ls2)

结果:

[9, 8, 7, 6, 5, 4, 3, 2, 1]

[9, 8, 6, 5, 4, 3, 2, 2, 2, 1, 1]

十二、sort()函数

ls1 = [5,2,1,6,9,55,2,8,10]

ls2= [(1,2),(3,5),(55,1),(6,0)]

ls3= ["a","z","A","y","g"]

ls4= [1,6,2,"a","z","h"]

ls1.sort()#默认升序排序

print(ls1)deff(n):return n[1] #对元组的第二个元素进行升序排序

ls2.sort(key=f)print(ls2)

ls3.sort(reverse=True) #降序排序

print(ls3)

ls4.sort()#会报错,列表ls4中元素种类不同。

print(ls4)

结果:

[1, 2, 2, 5, 6, 8, 9, 10, 55]

[(6, 0), (55, 1), (1, 2), (3, 5)]

["z", "y", "g", "a", "A"]---------------------------------------------------------------------------TypeError Traceback (most recent call last) in ()15 print(ls3)16

---> 17ls4.sort()18 print(ls4)

TypeError: unorderable types: str()< int()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值