列表,字典

列表,字典


列表

list 最具灵活性的有序集合对象类型

L = []
L = [0123]
L = [012,[456]]
L[I]
L[I][J]
L[I:J]
L1+L2
L.append(4)     # 插入单个元素
L.extend([5,6,7])   #插入一个列表,插入几个元素,列表会多几个元素
l.insert(1)    #在偏移处插入
l.index(1)    #首次出现的位置
l.count(x)     #计数
l.sort()      #排序与reverse合用,可以实现从大到小
l.reverse()   #元素反转
del l[k]     
del l[i:j]
l.pop()      #删除某个位置
l.remove(2)     #删除元素
l[i:j]=[]        #重新赋值
l[i]=1              #重新赋值
l[i:j]=[4,5,6]    #重新赋值

这里写图片描述

列表方法调用

l[0:3]=l[:3]

这里写图片描述

append与sort

L.append(‘please’)

L.sort() #递增 修改了列表

append与L+[]的区别

append是原地列表

+是生成新列表

l.sort(key=str.lower,reverse=True)

排序的key参数也很有用

以后内置函数sortef比sort方法更好用

深浅拷贝

s = ['abc','ABD']
s2 = s.copy()
print(s2)
s2[0] = 3
print(s2)
------------------
['abc', 'ABD']
[3, 'ABD']

修改字符串不影响原先的

s = [[2,3,4],'ABD',158]
s2 = s.copy()
print(s2)
s[0][0] = 3
print(s2)
print(s)
------------------
[[2, 3, 4], 'ABD', 158]
[[3, 3, 4], 'ABD', 158]
[[3, 3, 4], 'ABD', 158]

修改序列影响原来的

深拷贝=克隆

浅拷贝=只拷贝第一层


这里写图片描述
这里写图片描述

这里写图片描述

#不是深浅拷贝,注意
a = [[1,2],3,4]
b = a
b [1] = 123
print(b)
print(a)
---------------
[[1, 2], 123, 4]
[[1, 2], 123, 4]

集合set

所有python中所有不可改变的的对象(imutable objects)都是可哈希的,比如字符串,元组,也就是说可改变的容器如字典,列表不可哈希(unhashable)

set里的 元素一定是不可变的元素,元素是可哈希的,无序的不重复的,没有切片,索引,取值

取值可以通过 forinnot in 循环和迭代器

集合成员可以做字典的键

a = set('wang')
print(a)
-----------------
{'n', 'w', 'a', 'g'}
a = {'wang','lei'}
print(a,type(a))
--------------
{'lei', 'wang'} <class 'set'>

集合分类:可变集合,不可变集合

可变集合(set):可添加删除元素,非可哈希(set函数本身是非可哈希的),不能用作字典的键,也不能做其他集合的元素

不可变集合(frozenset):与上相反

s = ['wang',123]
a = set(s)       #a是非可哈希
c = {a:'lei'}    #报错
a = {'wang','lei'}
a.add('www')            #add加入整体
print(a)
--------------
{'lei', 'www', 'wang'}
---------------------
a = {'wang','lei'}
a.update('abc')      #update分散开,重复的只打印一个
print(a)
---------------
{'wang', 'lei', 'b', 'c', 'a'}
a = {'wang','lei'}
a.update([12,'eee'])      #update加字典
print(a)
{'wang','lei',12,'eee'}
a.remove(12)              #删除
a.pop()                #随机删除
a.clear()              #清空

集合类型操作符

1.in,not in

2.等价于不登等价

set('alex')==set('alexe')   
#等价.左边四个元素的集合,右面也是4个元素的集合(不重复),不能有其他的元素

3.子集,超集

print(set('wang') < set('wanglei'))

4.并集(|),交集(&),差集(-),反向交集(^)

差集考虑两者前后顺序,反向交集是除了交集之外的


字典

键不可变

D = {}           #空
D = {'ABC':2265:'fd'}
D = {'ABC':{1:2},265:'fd'}
D = dict.fromkeys(['a','b']) 
D = dict(zip(keyslist,valslist))
D = dict(name='bob',age=40)
D['dfe'] = 'fjd'       #增加dfe键,fjd值
D[ABC][1]           #键测试是否在字典
'fd' in D            #关系测试
D.keys()       #查看所有键
D.valus()      #查看所有值
D.items()      #所有项目以元组形式
D.copy()         #复制
D.get(default)     #输入键,返回值
D.update(d2)       #合并键值对
D.pop(key)         #删除键
len(D)             #长度
D[key] = 42         #修改键
del D [key]         #删除键
list(D.keys())      #用列表方式提取键
D1.keys()&D2.keys()   #交集
Dictionary views (Python 3.0)
D = {x:x*2 for x in range(10)}

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值