1.列表list,值的有序序列,每个值可以通过索引来标识
可以使用for循环对列表顺序进行遍历,也可以使用[]和[:]运算符取出列表中一个或多个元素
list1=[1,2,3]
list2=list1*2//1,2,3,1,2,3
print(len(list1))//len()求列表长度
print(list1[-1])//3
for index in range(len(list1))://利用下标遍历列表
print(list1[index])
for elem in list1://利用for循环遍历列表元素
print(elem)
enumerate()函数会同时列出下标和元素
for index,elem in enumerate(list1):
print(index,elem)
2.向列表添加元素及移除元素
list1.append(200)
list1.insert(1,200)
list1.extend([100.200])
list1+=[100,200]
list1.remove(200)//移除指定元素
list1.pop(1)//移除指定位置的元素
list1.clear()//清空列表元素
3.列表和字符串一样,也可做切片操作
可以通过反向切片获得倒转的列表
fruitnew=fruit[::-1]
4.列表的排序
list2=sorted(list1)//sorted这样不改变list1的顺序,默认按照字母表的顺序排列
list1.sort(reverse=True)//改变list1的顺序
list2=sorted(list1,reverse=True)//按照字母表相反的顺序排列
list2=sorted(list1,key=len)//根据字符串的长度进行排序
5.生成式和生成器
f=[x for x in range(1,10)]
f=[x+y for x in 'ABCDE' for y in '1234567']
列表利用生成式表达语法创建列表容器
# 请注意下面的代码创建的不是一个列表而是一个生成器对象
# 通过生成器可以获取到数据但它不占用额外的空间存储数据
# 每次需要数据的时候就通过内部的运算得到数据(需要花费额外的时间)
f=(x**2 for x in range(1,1000))
print(sys.getsizeof(f))
# 相比生成式生成器不占用存储数据的空间
print(f)
for val in f:
print(val)
6.yield关键字
https://blog.csdn.net/mieleizhi0522/article/details/82142856
7.元组
元组也是一种容器数据类型,不同之处在于元组的元素不能修改。
t=('杨晓宇',21,True,'山东德州')
person=list(t)//元组转换为列表
newt=tuple(person)//列表转换为元组
元组中的元素无法修改,我们在项目中尤其是多线程环境中更喜欢使用的是那些不变对象
元组在创建时间和占用的空间上面都优于列表
8.集合
集合不允许有重复元素,而且可以进行交集,并集和差集运算。
set1={1,2,3,3,2}//只会输出1,2,3
集合的插入与删除
set1.add(4)
set1.update({1,2,3})
set1.discard(2)
set1.pop()
集合可以进行交集,并集,差集和对称差运算
set1&set2//交集
set1|set2//并集
set1-set2//差集
set1^set2//对称差
9.字典
字典是另一种可变容器模型,Python中的字典跟我们生活中使用的字典是一样一样的,它可以存储任意类型对象,与列表、集合不同的是,字典的每个元素都是由一个键和一个值组成的“键值对”,键和值通过冒号分开。