爬虫第1课——Python语法基础

bobo老师

重要数据类型

列表数据类型
  • 列表的创建方式

    • 创建一个列表,只要把逗号分隔的不同的数据元素使用方括号括起来即可。列表内的元素,可以是其它任意类型的数据,可多层嵌套列表,元素个数无限制。

    • alist = [1,2,3,4,5]
      items = [1,'haohao',12.34]
      #列表中可以存储任意类型的数据
      
  • 列表元素:

    • 存储在列表数据结构中的每一个数据被称为列表元素,简称元素。
  • 访问列表内的元素

    • 列表从0开始为它的每一个元素顺序创建下标索引,直到总长度减一。要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异常。所以,一定要记得最后一个元素的索引是len(list)-1。

    • alist = [1,12.3,'bobo']
      print(alist[2])  #'bobo'
      print(alist[0:2]) #[1, 12]
      print(alist[6]) #使用索引和切片的时候,不可以访问超出索引范围的元素
      
  • 修改元素的值

    • 直接对元素进行重新赋值

    • alist = [1,12.3,'bobo']
      alist[1] = 100.123
      print(alist)
      
  • 删除元素

    • 使用del语句或者remove(),pop()方法删除指定的元素。

    • alist = [1,12.3,'bobo']
      # del alist[0] #删除下标为0的列表元素
      # alist.remove('bobo') #删除列表中bobo这个列表元素
      # alist.pop() #默认情况下pop会把列表中最后一个元素删除
      alist.pop(2) #将列表中下标为2的元素进行删除
      print(alist)
      
  • 切片

    • 切片指的是对序列进行截取,选取序列中的某一段。

      • 切片的语法是: list[start:end]

      • #同字符串的切片机制一样
        alist = [1,12.3,'bobo','jay','hello']
        print(alist[:-1])
        
    • 以冒号分割索引,start代表起点索引,end代表结束点索引。省略start表示以0开始,省略end表示到列表的结尾。注意,区间是左闭右开的!也就是说[1:4]会截取列表的索引为1/2/3的3个元素,不会截取索引为4的元素。分片不会修改原有的列表,可以将结果保存到新的变量,因此切片也是一种安全操作,常被用来复制一个列表,例如newlist = lis[:]。

    • 切片过程中还可以设置步长,以第二个冒号分割,例如list[3:9:2],表示每隔多少距离取一个元素。

  • 列表的内置方法

  • alist = ['bobo',"18","99.5",'北京']
    #将列表转换成字符串
    ret = '-'.join(alist) #将列表中的每一个列表元素根据-为间隔进行拼接,返回字符串结果
    print(ret)
    
    #如何将字符串转换成列表
    s = 'hello-name-bobo-age'
    ret = s.split('-')
    print(ret)
    
    alist = [3,8,5,7,6,2,1]
    alist.sort() #对列表元素进行排序
    print(alist)
    
    a = [1,2,3]
    a.append('bobo') #向列表尾部添加一个元素
    print(a)
    
    a1 = [1,2,3]
    a1.insert(1,999) #向列表下标为1的位置添加一个元素
    print(a1)
    
字典数据类型
字典数据类型
  • 字典的实现机制:

    • Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。
  • 字典特性:

    • 字典包含的元素个数不限,值的类型可以是任何数据类型!但是字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,最常见的还是将字符串作为key。列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的,但值则不必。
    • 注意:从Python3.6开始,字典是有序的!它将保持元素插入时的先后顺序!请务必清楚!
  • 创建字典

    • 字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,例如:

      • d = {key1 : value1, key2 : value2 }
    • #键值对:key : value
      #key:只能使用不可变类型的数据充当,通常使用字符串
      #value:任意数据类型的值充当
      #字典中无法存储重复的键值对
      dict_1 = {'name':'bobo','age':18,'score':100,'age':18}
      #注意:不要在字段中存储相同的key,value可以相同
      dict_2 = {'name':'bobo','age':18,'age':20}
      print(dict_2)
      
  • 访问字典

    • 虽然现在的字典在访问时有序了,但字典依然是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但与list类似的地方是,字典采用把相应的键放入方括号内获取对应值的方式取值。

    • d = {'name':'bobo','age':20,"scores":[100,120,99]}
      #根据key访问对应的value值
      print(d['name'],d['scores']) #依次访问name和scores对应的value值
      print(d.get('name')) #通过get使用对应的key访问对应的value值
      
      #注意:使用[]访问不存在的key对应的value值程序会报错
      # print(d['adress']) #程序报错
      
      #注意:使用get访问不存在的key程序不会报错,但是会返回None这个空值
      print(d.get('address'))
      
    • get访问:

    dic = {'name':'bobo','age':20,"scores":[100,120,99]}
    #2种字典元素访问的方式
    print(dic['name'])
    # print(dic['address']) #key不存在则报错
    print(dic.get('address')) #key不存在则返回None
    
  • 添加和修改

    • 增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一个值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。
    d = {'name':'bobo','age':20,"scores":[100,120,99]}
    d['name'] = 'jay' #给存在的key修改对应的value值
    d['address'] = 'Beijing' #给一个不存在的key赋值表示新增键值对
    del d['age'] #删除age键值对
    print(d)
    
  • 删除字典元素、清空字典和删除字典

    • 使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典。
d = {'name':'bobo','age':20,"scores":[100,120,99],'name':'bobo'}
del d['name']
print(d)

d = {'name':'bobo','age':20,"scores":[100,120,99],'name':'bobo'}
del d
print(d)

d = {'name':'bobo','age':20,"scores":[100,120,99],'name':'bobo'}
d.clear()
print(d)
  • 字典的重要方法
d = {'name':'bobo','age':20,"scores":[100,120,99]}
print('name' in d) #查看name是否存在于d字典的keys中
print(d.keys()) #返回字典中所有的key
print(d.values()) #返回字典中所有的value
print(d.items()) #返回字典中所有的键值对
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值