python基础3

1、列表

  • 形式:使用方括号括起来,元素之间用逗号隔开
    li = [1,2,3]
  • 索引
    li = [1,2,3]
    s = li[1] #s=2
  • 切片
    #和字符串相同(python基础二中)
    l1 = li[0:2]
  • 添加元素
    #在尾部添加一个元素
    li.append(a) #a为元素
    
    #在指定位置添加元素
    li.insert(1,a) #在第二个位置添加a
    
    #在尾部添加可迭代对象中的所有元素
    li.extend(a) #a为可迭代对象(比如列表)
  • 删除元素
    #通过索引删除元素并返回,如果不指定索引则删除最后一个
    s = li.pop(0) #s = li[0]
    
    #删除第一个符合的值
    li.remove(a)
  • 长度
    #len是通用的方法,对象都可以使用
    length = len(li)
  • 统计某元素个数
    s = li.count(1) #s为1的数量
  • 匹配元素的索引
    i = li.index(3) #i为3所在位置的索引
  • 排序
    #正向排序
    li.sort() #不返回东西,直接修改原列表
    
    #逆向排序
    li.sort(reverse=True)
    
    #也可以使用sorted进行排序,返回一个新列表,不修改原来的列表
    new_li = sorted(li)
  • 翻转
    li.reverse()
    # [1,3,2] -> [2,3,1] 翻转不会进行排序
  • 清空列表
    li.clear()
  • 删除列表
    del li

     

2、元组

  • 形式:用圆括号括起来,元素用逗号隔开。
    t = (1,2,3)
  • 不可以修改,但如果元素是列表之类的对象,可以修改列表中的元素。(既不是直属于元组的元素)
    t = (1,2,[3,4])
    
    #不合法的做法
    t[0] = 3
    
    #合法的做法
    t[2][0] = 1

 

 3、字典

  • 数据类型划分:可变数据类型,不可变数据类型
  • 不可变数据类型(可哈希):元组,bool,int,str
  • 可变数据类型(不可哈希):list,dict,set
  • 字典是python中的映射类型,采用键值对(key-value)的形式存储数据。对key进行哈希运算,根据结算结果决定value的存储地址,key必须是可哈希的。
  • 形式
    dic = {
                key1:value1,
                key2:value2,
                ...
    }
  • #1.通过直接赋值的方式添加,如果key已经存在,则是修改原来的kv
    dic = {'num':18,'age':12}
    dic['num'] = 19 #修改
    dic['name'] = 'hsr' #添加
    
    #2.通过setdefault方法
    dic.setdefault('weight') #添加键值对'weight':None
    dic.setdefault('weight',130) #添加键值对'weight':130
  • #1.使用pop
    dic.pop('num')    #删除key='num'的键值对,并把value返回
    dic.pop('grade','No the key'#如果没有grade这个键,则返回No the key
    
    #2.popitem
    dic.popitem()    #随机删除一个
    
    #3.del
    del dic['num']
  • #1.直接赋值
    dic['num'] = 18
    
    #2.update方法
    dic2 = {'address':'xiamen','age'=14}
    dic.update(dic2)    #将dic2中的键值对添加到dic中,如果存在了就修改
  • #1.get方法
    value = dic.get(key, '默认值')    #不存在返回默认值
    
    #2
    dic.keys()    #获得包含key的可迭代对象
    dic.values()    #获得包含value的可迭代对象
    dic.items()    #获得包含每一对键值对的可迭代对象
    #可以通过for循环进行遍历
    for k,v in dic.items():
        pass
  • 小点:一行互换a,b的值
    a, b = b, a
    #原理:Python的变量并不直接存储值,而只是引用一个内存地址,交换变量时,只是交换了引用的地址。
  • 循环遍历字典的时候,不可以删除字典的元素

 

4、 集合

  • 集合是可变的数据类型,里面的元素必须是不可变数据类型,无序不可重复
  • 创建
    #法1,使用set()
    set1 = set([elem1,elem2....])
    
    #法2,直接赋值
    set2 = {1,2,3}    #集合和字典都是用花括号,但是里面的元素不是键值对
  • #add,当成一个元素添加
    set1.add(4)
    
    #update,迭代添加(类似列表的extend)
    set1.update('abc')    #结果是添加a,b,c三个元素
  • #随机删除,将其返回
    s = set1.pop()
    
    #指定删除元素,没有则报错
    set1.remove(3)
    
    #清空集合
    set1.clear()
    
    #删除集合
    del set1()
  • #使用for循环
    for i in set1:
        pass
  • 交集
    s = set1 & set2
    s = set1.intersection(set2)
  • 并集
    s = set1 | set2
    s = set2.union(set1)
  • 反交集
    s = set1 ^ set2
    s = set1.symmetric_difference(set2)
  • 差集
    s = set1 - set2
    s = set1.difference(set2)
  • 子集与超集
    set1.issubset(set2)
    b1 = set1 < set2    #为True则set1是set2的子集
    
    set2.issuperset(set1)
    b2 = set2 > set1    #为True则set2是set1的超集
  • 不可变集合
    #元素不能修改
    s = frozenset(set1)

 

5、join

  • 用来将可迭代对象转为字符串
  • 列表->字符串 ====>join,字符串->列表=====>split
    li = ['i','love','you']
    s = ' '.join(li) #结果 s = 'i love you'

 

6、用range生成数字列表

  • #生成1到100的数字列表:[1,2,...,100]
    for i in range(1,101):    #不包含第二个参数,可以理解为左闭右开区间
        pass
    
    #生成100以内的偶数
    for i in range(0,101,2):    #2是步长
        pass
    
    #生成逆向数字列表[100,99,....,1]
    for i in range(100,-1,-1):
        pass
    
    #注意如果像这样写参数,没有元素,也不会报错
    for i in range(0,10,-1):
        pass

     

posted @ 2019-02-09 19:50  WaltHwang  阅读(158)  评论(0编辑  收藏  举报