数据类型一些基本操作方法

一丶列表

list.index(a) 查询列表里元素所在的位置(如果有重复是从左到右第一个元素所在的位置)

list.count(a)  统计指定元素的个数

list[1:6:2]  步长为2,索引为1开始,打印第2,4,6个元素

list[::2] 返回所有的值,步长为2

list.append() 列表末尾添加一个元素。

list.insert(3,'a') 在索引为3的位置插入元素a

 list.pop() 删除列表末尾元素。

list.remove(a) 删除从左到右找到的第一个元素。

del list[n ] 删除指定位置的元素(n是索引)。

list.sort() 列表排序,按照大写,小写字母表顺序排序,特殊符号在前面 [‘!’,'A',‘B’,‘c’,‘m’,‘t’]

list.reverse()  反转排序

list.extend(列表)    扩展列表

list[2] = ['e','t']  直接替换列表中的第三个元素,而不是插入。

list.clear() 清空列表

二丶字典

查询字典中的值

name = { }

name[key]

name.get(key)

name.get(k,v) 字典中获得键的值,如果不存在则返回key。也是向字典里字典里添加键值对的方法。

name.keys() 打印所有的键,以列表的形式呈现。

name.values() 同理

names.setdefault(‘names1’,[default]) 如果键存在,返回键对应的值。如果键不存在,插入这个健,并且以default为键对应的值。

name.update(k,v)  在字典内插入字典的键值对,如果键重复,会覆盖原有的键(update返回的值为None)。

name.items() 返回一个元祖对列表。

dict.fromkeys([1,2,3],'test') 通过一个列表生成默认dict,有坑,少用()后面的值可以是任何一个类型,是一个整体)。

字典的循环

for k in name:

  print(k)  #打印字典中的键或值

for k ,v in name.items():

  print(k,v) #将字典先转换成列表,在打印列表中的值。

dict.popitem() 删除字典中最后的键值对。

三丶集合

集合是一个无序的,不会重复的数据组合。

集合作用:去重,列表变成集合,自动去重。

用于两组数据之间的关系测试(交集,并集等)

集合具有无序性,集合里的元素可随意排列。

补充:hash函数 (可hash的值必须是固定的(元组,字符串))

删除集合中元素的方法

discard() 括号里为删除的元素 集合为空不会报错,会显示set()

pop() 随机删除一个元素,列表为空会报错。

clear()  清空集合

add() 只能添加不可变数据

集合中的交集,差集,并集比较

交集:a.intersection(b)或者a&b

差集:a.difference(b) 或者a - b

并集:a.union(b) 或者 a|b

对称差集:a.symmetric_difference(b) 或者 a^b

in,not in 判断元素是否在集合内

集合之间的相交,不相交,包含关系

set.isdisjoint() 判断两个集合是否不相交

set.issuperset()判断集合是否包含其他集合。

set.issubset() 判断集合是否被其他集合包含。

oct() 八进制

hex() 十六进制

id() 查看内存地址

深浅copy

copy() 浅拷贝 第一层指向的地址不同,后面指向的地址相同

deepcopy() 深拷贝 第一层指向的地址和后面指向的地址都不同。

import copy
a = [1,2,[3,4]]
b = copy.copy(a)
c = copy.deepcopy(a)
print(b,c)

if b == c:
    print("True")

if b is not c:              # 输出为True,表示b和c已经不是来自同一个对象了。
    print("True")

a[2][0] = "hello"           # 改变a的值,浅copy出来的值随着a的改变而改变,可能是个假的copy
print(b, c)                  # deepcopy出来的值是独立的,并没有随着a的改变而改变。

# [1, 2, [3, 4]] [1, 2, [3, 4]]
# True
# True
# [1, 2, ['hello', 4]] [1, 2, [3, 4]]

  

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/8476730.html