列表的操作和字典的访问
一.列表的三种浅拷贝
列表中的元素可以是不同类型的元素,区别与c语言的数组
- list(列表对象)
- list_new_name=list_name[ :]
- copy.copy(列表对象)#适应于其他对象
-
- 补充: for index,value in enumerate(列表对象)#函数的返回值是元组(index,value)
二.深层拷贝
copy.deepcopy(拷贝对象)
三.变相的加密方法
p=str.maketrans(加密前的元素,对应的加密后的元素)#str是字符串库,这是转换的方法
字符串实例.translate(p)#p是对应的法则
p = str.maketrans("12345","abcde")
str_name = "234876"
print(str_name.translate(p))
四.访问字典的两种方法(建议用第一种)
- for i in dict实例:相当于迭代器
print(i,dict[i])
2. for key,value in dict实例.item():
print(key,value)
五.创建一个字典的方法
dict.formkeys(列表,值)#列表中的元素作为字典的下标,每一键对应的值是后一个形参
无论值是不是一个复杂类型
list = ["name","age"]
dict _name = dict.formkeys(list,['alex',23])
print(dict _name)
实际应用 dict.formkeys(列表,none)同时默认也是none
六.检测是否会有重叠的键,没有则创建,有则更新
字典对象.update(另一个字典对象),也是在字典中同时添加多个元素
补充:
1.exit()#用于退出整个程序,里面可以带字符串,作为退出程序的说明
2.变量赋值
a = 1 b=a a=2 print(a,b)
内存会为1划分一块空间,a将获得该地址,b=a是将1的地址同意发给b,重新为a
是在内存为2重新划分一块空间,a将指向这个地址,而b不会改变
3.列表方法的总结
查:
通过索引(下标)
.count(元素内容) 查询该元素在列表出现的次数
.index(元素内容) 查询该元素在列表出现的下标,但若有相同的该元素,则取第一个
获取第二个该元素的方法,先获取第一个 在切片,在获取
long_list = [1,2,3,5,2,6,8] first_in =long_list. index(2) son_list = long_list[first_in+1:] sec_in = son_list.index(2) aim = long_list[firt_in+sec_in+1]
元素内容 in list 查询该元素是否在该列表中,也可以通过count函数
增:
a.append() 追加
a.insert(index,内容) 插入
a.extend(list) 添加一个列表
修改:
a[index] = 新值
a[staret:end] = [新列表]
删除:
a.pop(index) 删除并返回该要删除的值,不加参数,默认返回最后一个
a.remove(内容)
del a,del a[index]
a.clear()清空
排序:
a.sort()升序/a.sort(reverse=True)降序
a.reverse()
4.字典的方法总结
#a是一个字典,key唯一,无序
键不能是不可哈希的数据,值可以为任意的值,有有两个键相同,取出来的是第一个
增:
a['name'] = 'alex'
a=dict((('name','alex'),))#创建一个新的字典,空字典{}
a.update(b)#b是另一个字典,若有相同则更新,没有则创建
a.setdafaout('age'=23)设置默认值
a.formkeys(["name","age"],[1,2,3])#该函数只有两个参数,第一个参数是由keys组成的列表,第二个参数是每一个key的value,用于初始化,但值最好不能是可变类型,是浅拷贝
如:a['name'][1]= 0
删:
del a['name'] #将整个键值对都删除了
del a #删除了整个字典
value = a.popitem('name') #删除该键值对,并返回该键对应的值,没有参数则随机删除
a.remove()
a.clear()#清空字典
改:
a['name'] = new_value
查:
key in a #若该键在a中返回true
a = {'name':'alex','age':24} for key in a:#key是一个形参 print(key,a[key])#最高效
不高效,不推荐
for keys,values in a.items():#keys,values是形参,items先返回一个列表,占空间 print(keys,values)
排序:
sorted(a) sorted(a.items()) sorted(a.keys()) 均是以key的值进行排序
sorted(a.values()) 以值排序