列表
~列表常见操作
L.append(object)-->在列表末尾添加新的对象
#列表是可变的
li = [1,2,3]
#添加4
li.append(4) # 在尾部添加新的元素
li.append([5,6]) # 直接将整个列表作为一个整体添加进去
print(li) # [1, 2, 3, 4, [5, 6]]
L.count(object)-->统计某个元素在列表中的次数
li = [1,2,3,[3,3]]
print(li.count(3)) #1
print(li[3].count(3)) #2
L.extend(iterable)-->用新列表扩展原来的列表
li = [1,2,3]
#添加4
li.extend([4]) #可迭代(只要是通过下标取值,就是可迭代的),将值依次添加
print(li) # [1, 2, 3, 4]
L.index(value)-->从列表中找出某个值第一个匹配项的索引位置
li = [1,2,3,4,5,2]
print(li.index(2)) #查找第一个2的下标 1
L.insert(index,object)-->将对象插入列表
li = ['hello','h']
li.insert(0,'b') # 根据下标位置来添加新值
print(li) # ['b', 'hello', 'h']
L.pop([index])-->移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
L.remove()-->移除列表中某个值的第一个匹配项
L.reverse()-->反向列表中的元素
L.sort(reserse=False)-->对原列表进行排序
L.copy()-->复制列表
li = [1,2,3,4,5]
li2 = li.copy()
print(li2) # [1, 2, 3, 4, 5]
#li2=li 与 li.copy不同,内存地址不同
L.clear()-->清空列表
li = ['hello','h']
li.clear()
print(li) #[]
#clear 用来清除列表中的内容 ,del 用来删除列表
元组
~元组的介绍
元组也是序列结构,但是是一种不可变序列,可以理解为内容不可变的列表
~元组创建
tu = (1,"1.00",1.0) # 可创建不同类型
print(tu) #(1, '1.00', 1.0)
t = tuple([1,'1.1'])
print(t) #(1, '1.1')
~与列表相同操作
#索引取值,从0开始
tu = tuple('1234')
print(tu[1])#2
#切片取值
# 3,4
print(tu[2:4]) #左闭右开
# count index
t = (1,2,3,4,5,3)
print(t.count(3))
print(t.index(3))
#sort只是针对列表
#reserved,sorted 内置的,只要是可迭代的对象就可以使用
tut = (1,5,4,3)
print(tuple(reversed(tut))) #反转
print(sorted(tu)) # 排序输出一个新列表,升序,不改变原来的值
tu1 = (1,2,3)
tu2 = (2,3,4)
print(tu1+tu2) # 做拼接
# print(tu1*tu2) # 不行
print(tu1 * 2) # 做拼接
~元组中不允许的操作
不允许增删改查
不允许删除某个元素(但可以删除整个元组)
若元组中嵌套着列表(可变的),则可以定位列表进行修改
元组内存消耗相对列表更少
当元素不需要改变的时候,推荐使用元组
当元素需要改变时,推荐使用列表
~元组与列表之间的转换
li = [1,2,3,4] print(tuple(li))#(1, 2, 3, 4) tu = (1,2,3,4) print(list(tu))#[1, 2, 3, 4]
字典
~字典的介绍
字典的数据类型基于hash散列算法实现的,采用键值对的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。它是一种可变对象,所以支持增删改查
~字典创建
dic = {}
print(type(dic)) #<class 'dict'>
#创建字典,元素不限,值可以为任意类型,可变的
dic = {'name':'zhangsan','age': 18,'hobby':['python','bask']}
print(dic['name']) #zhangsan
#注意点1,key只能是不可变的数据类型
dic = {['adder']:'human'}#不行
dic = {('adder'):'human'}#可行
#注意点2,键是唯一的,但是有重复键会进行覆盖
dic = {'adder':'hunan','adder':'shenzheng'}
print(dic)#{'adder': 'shenzheng'}
也可以通过name=张三的方式创建字典
map跟zip
dic = {}
print(type(dic)) #<class 'dict'>
#创建字典,元素不限,值可以为任意类型,可变的
dic = {'name':'zhangsan','age': 18,'hobby':['python','bask']}
print(dic['name']) #zhangsan
#注意点1,key只能是不可变的数据类型
dic = {['adder']:'human'}#不行
dic = {('adder'):'human'}#可行
#注意点2,键是唯一的,但是有重复键会进行覆盖
dic = {'adder':'hunan','adder':'shenzheng'}
print(dic)#{'adder': 'shenzheng'}
# 将列表中元素,转化为int
li = list('1234')
#map 将每个元素传到int中
print(map(int,li)) #<map object at 0x000002351D662EB0>
#zip 将两个列表中元素一一对应
li_k = ['name','age']
li_v = ['zhangsan',30]
print(zip(li_k,li_v)) # <zip object at 0x0000014A048AEE40>
print(dict(zip(li_k,li_v)))#{'name': 'zhangsan', 'age': 30}
#也可以通过下标一一对应创建字典
~字典的常用方法
dic1 = {'name': 'zhangsan', 'age': 30}
print(dic1['name']) #通过key取值
# print(dic1('gender'))#不存在的值会报错
print(dic1.get('gender'))#None,get查不到的值不会报错
#增加值,如果不存在就创建
dic1['gender'] = 'female'#创建
print(dic1)
dic1['gender'] = 'male'#修改
print(dic1)
#删除
dic1 = {'name': 'zhangsan', 'age': 30}
#删除指定的值
del dic1['name']
print(dic1)#{'age': 30}
#pop 删除
dic1.pop('age')
print(dic1)#{'name': 'zhangsan'}
#删除整个字典
del dic1
#清空字典
dic1.clear()
print(dic1)
dic2 = {'name': 'zhangsan', 'age': 30}
print(dic2.items()) #用于循环,以列表返回可遍历的(键值)元组对
print(dic2.keys())#所有键
print(dic2.values())#所有值