Python基础知识(Day-4)

#序列类型简介(Sequence)

列表list,元组tuple,字典dic,集合set

#列表

  • 定义:一系列特定元素组成的,元素之间没有任何关联,但有先后顺序关系。
              Python中的list可以看做是一种支持泛型的序列(sequence)(相同的东西,集中在了一起)
              列表可以改变元素的值
              列表是一种容器
  • 空列表:
    L = []
    L = list()
  • 非空列表:
    L = [1,2,3,5]
    L = ["beijing","shanghai","shenzhen"]
    L = [[1,2],[3,4],[5,6]]
    L = [123,234,"beijing",123,"shangahi"]
  • 列表生成函数 list()
    list()
    list(iterateble):构造具有初始化对象的列表。
  • list的操作
    *=,是重复叠加列表
  • list赋值
    改变list本身,不会产生新的list
  • 切片赋值
    [start:end],[start:end:step]
  • 对于步长为1的切片赋值
    左右
  • 对于步长大于1的切片赋值
    左右两边的数的个数要相等,逐一替换
    L=[1,2,3,4,5,6]
    L[0::2]=[100,200,300]
  • 切片被字符串赋值时,字符串是按字符去替换的
    L=[1,2,3,4,5,6]
    L[::2]="ABC"  #L = ['A',2,'B',4,'C',6]
  • python中常用的序列函数
    len(x)
    max(x)
    min(x)
    sum(x)
    any(x)
    all(x)         #全部为真值返回True
  • Python3中列表的常用属性方法
    L.index(value,begin,end)
    L.insert(index,obj)
    L.count(x)
    L.remove(x)
    L.copy()
    L.append(x)   #尾部添加单个元素
    L.extend(list)   #列表追加一个列表
    L.clear()          # 清空列表,等同于L[:]=[]
    L.sort(reverse=False)    #默认为升序,reverse=True(降序)
    L.reverse()     #列表反转
    L.pop([index])   #删除索引对应的元素,如果无index,则删除末尾的元素,函数的返回值为删除的元素。
  • 列表的嵌套:
    L=[1,2,3]
    L1 = [10,L,30]        #L1 = [10,1,2,3,30
  • 复制列表
    深拷贝和浅拷贝
  • 浅拷贝
    L.copy(), 列表嵌套之后,进行copy,原列表和拷贝列表中的嵌套列表指针公共地指向被嵌套的列表
    L.copy()copy函数,L[:],切片赋值是浅拷贝
  • 深拷贝:将对象逐层复制
    import copy  #导入copy包
    L= [20,21,22]
    L1 = [1,L,2]
    L2 = copy.deepcopy(L1)
    L[2] = 25
    以上L[2] = 25,不会改变L1中的值
  • 列表的可迭代对象
    L=[2,3,4,5,7]
    for x in L:
          print(x)
  • 列表推导式(list comprehension)
    列表推导式是用可迭代对象,依次生成列表内元素的方式
    语法:
    [statement for var in obj]
    or
    [statement for var in obj if condition]

    例子:
    >>>L =[1,2,3,4,5]
    >>> L1 = [i**2 for i in x if i >2]
    注意两层循环嵌套
    [i*j for i in obj1 for j in obj2]

#字符串和list的区别

  • 字符串不可改变,只能存储字符
  • list可改变,可使用泛型
  • 都是序列,有先后顺序

#元组

  • 不可改变的序列,与list一样,不能改变的list,元组可以存放任意的值
  • 表示方法:()
  • 创建空元组
    t = ()
    t = tuple()
  • 创建非空元组
    t = (1,2,3)
    t = 10,
  • 序列赋值
    x,y = 10,20
  • 其余与list相似

#字典

  • 什么是字典
    字典无序
    以键-值对的形式存储数据
    字典的表示方法是{},:为其key-value的分隔符
    字典的键,不能重复
  • 创建空字典
    d = {}
    d = dict()
  • 创建非空字典
    d = {"name":"jam","age":35}
    d = [{"name":"zhangsan","age":30,"score":20},{"name":"lisi","age":30,"score":20}]
  • key必须为不可变类型,bool,int,float,complex,str,tuple,frozenset(固定集合)包括None
    list集合,dict字典,,set集合,不可以作为key
  • 字典的遍历
    for k,v in d.items():
    ... print k,":",v
  • 添加、修改字典的元素
    d["name"] = "zhangsan"
  • 字典的基本函数操作:
    len(x)
    .....
  • 生成函数:
    dict()
    dict(
  • 字典的方法:
    D.clear()
    D.pop(key)
    D.copy()    # 浅拷贝
    D.update(D2)     #D与D2的key相同,进行更新
    D.get(key)
    D.keys()
    D.values()
    D.items()
  • 字典的推导式:
    {健表达式:值表达式 for i in obj if condition}
    numbers = [1001,1002,1003,1004]
     

#集合,(使用的不多,了解即可)

  • 什么是集合
    无value的字典
    无序的存储结构,无先后关系
    保存的对象不可重复
  • 空集合
    set()
  • 非空集合
    set(iterable)函数
  • 集合的运算:
    交集,并集,补集,子集,超集,对称补集
  • Python3中常用的方法:
    帮助文档,用的时候查找
  • 集合推导式:
    类似
  • 固定集合 frozenset
    不可被改变的集合

猜你喜欢

转载自blog.csdn.net/leopold2015/article/details/88658414