数组
a = [1,2,3] print(a)
数组替换
a = [1,2,3] a[0] = 100 print(a)
数组去重复
def delete_chong(): a = [1,1,2,2,3] b = []# 建立一个空数组 for i in a: if i not in b : # 如果a数组中的元素,b中没有 b.append(i)# 将该元素放进b中 print(b) delete_chong()
再数组的末尾加上一个数字
a = [1,2,3] a.append(100) print(a)
删除指定位置的元素
a = [1,1,1,3,3,3] a.remove(4) print(a)
在数组中指定位置插入数字
a = [1,2,3,4] a.insert(1,400) print(a)
数组中元素交换位置
a = [2,1,3,4,10] a[3],a[4] = a[4],a[3] #将指针为3和4位置的数字调换 print(a)
数组内容
数组里什么都能放
m = [1,1.0,'a',print,str,[10,20,[33,44]]]
print(m)
列表生成式
简单的来说就是使用for循环来生成一个简单列表,复杂一些的貌似写不出来
占用内存较多
f = [x for x in range(11)] # 简写的for循环,列表生成式 # f = [x for x in range(11) if x % 2 == 0] # # f = [x + y for x in "ASCD" for y in "2345"] print(f)
列表生成器
相比生成式来说占用内存少
import sys f = (x ** 2 for x in range(10)) print(sys.getsizeof(f)) print(f) for v in f: print(sys.getsizeof(f))# 输出占用的内存 print(v)
字典
字典的一切操作都是通过键名来进行,在这中间自然调动了键值
字典是无序的,没有索引操作,除非转换从有序字典
dict_ = {1:100,2:200}# 键名不可以一样,键值可以一样 # print(dict_.get(1))# 都是通过键名获得键值,使用get的好处当键名不存在时可以输出none,适用于字典动态变化的时候,可以遍历默认遍历出键名, print(dict_[1]) print(dict_[2])
更新键值对
dict_ = {1:100,2:200}# 键名不可以一样,键值可以一样 # print(dict_.get(1))# 都是通过键名获得键值,使用get的好处当键名不存在时可以输出none,适用于字典动态变化的时候,可以遍历默认遍历出键名, print(dict_[1]) print(dict_[2]) dict_.update(aaa=444) print(dict_) dict_.update([(3,300)])# 试了好多次,只找到这一种“传一个包含一个或多个元组的列表”的形式进行添加以数字为键名的键值对 print(dict_) dict_.update([(3,300)])# 当重复添加一个相同的键名而键值一样是,字典元素不做任何改变 print(dict_) dict_.update([(3,400),(3,500)])# 当重复添加一个相同的键名而键值不一样时,按照最后一个进行更新 print(dict_)
获取键值对
dict_ = {1:100,2:200} for key,value in dict_.items(): print(key,value) # 获取键值对
替换键值对、弹出键值对
dict_ = {1:100,2:200} # dict_[1] = 10000 # 替换键值 # print(dict_) print(dict_.pop(1))# 弹出并输出指定键名的键值,弹出后字典中不再有该键值对 print(dict_.popitem())# 弹出并输出最后一个键值对,弹出后字典中不再有该键值对 print(dict_)
清空字典
dict_ = {1:100,2:200} dict_.clear()# 清空字典 print(dict_)
元组
元组和数组的转换
a = (1,2,3)#这是个元组,元组不可被‘直接’修改,如果不需要进行增删改操作时最好用元组节省内存 a = [1,2,3] # b = tuple(a)#定义一个数组 # print(b)#将数组转换为元组 print(a)
集合
a = {1,2,3} # a = {1,2,3,1}#集合自动去重复,做某些去重可转化为集合再转换回去 print(a)