python基础2:列表、元组、集合、字典

python基础2

2. 变量类型

2.3 列表 list

2.3.1 列表的创建
  • 列表可以支持任意类型的元素,常规的创建这里就不再赘述

  • 在某些特殊的情况下,我们会已知列表的长度,或者列表的长度由某一参数决定,而我们需要将元素放入列表的指定位置,这种情况下我们在列表初始化的时候就要预留好元素的位置

    #可以用一些简单的元素先行占好位置,例如0或者空字符,这样后续就可以给指定位置赋值
    #写法1
    x=[0 for _ in range(4)]
    #写法2
    y=[0]*4
    
    x[1]=2
    y[1]=2
    print(x)
    print(y)
    
    '''
    输出:
    [0, 2, 0, 0]
    [0, 2, 0, 0]
    '''
    
2.3.2 内置函数
  • 切片操作(即字符串中所讲)
    • 在字符串中其实就是把字符串看成列表,把每一个字符看成元素,包括空字符和转义字符,遵循左闭右开的法则,具体看前一篇
  • .append()/.extend()
    • 都是在列表最后添加元素
    • 区别在于append一次只能添加一个元素,而extend一次可以添加多个元素
  • .insert()
    • 在指定位置处插入元素,需要注意当指定索引 n 时,元素插入在 n+1位置处
      x=[0,0,0,0,0,0]
      x.insert(3,1)
      print(x)
      
      '''
      输出:
      [0, 0, 0, 1, 0, 0, 0]
      '''
      
  • .remove()/ del /.pop()
    • 都是可以删除列表元素

    • remove()删除指定元素,注意删除的是从左开始第一个指定元素

    • del()删除的是指定索引位置上的元素

    • pop有两个功能,返回列表最后一个元素并删除

      x=[1,0,0,1,0]
      x.remove(0)
      print(x)
      
      x=[1,0,0,1,0]
      del x[3]
      print(x)
      
      x=[1,0,0,1,0]
      s=x.pop()
      print(s)
      print(x)
      
      '''
      输出:
      [1, 0, 1, 0]
      [1, 0, 0, 0]
      0
      [1, 0, 0, 1]
      '''
      
  • .count()
    • 返回指定元素出现的次数
  • .index()
    • 返回指定元素的索引,这里只会返回检索到的第一个指定元素的位置
    • 当列表没有指定元素时会报错
    • 另外还可以指定范围进行检索
      x=[1,0,0,1,0]
      y=x.index(1)
      z=x.index(1,1,4)
      print(y)
      print(z)
      
      '''
      输出:
      0
      3
      '''
      
  • 列表的拼接
    • 通过A+B将A,B两个列表拼接起来

2.4 元组 tuple

元组看上去陌生,在平时其实很常用到,只是大家没有意识到自己用的就是元组。个人理解就是一个不能修改的有序列表,元组几乎继承了列表的所有属性,大部分操作同列表一样

  • 元组的创建
    t=()
    print(type(t))
    t=(1,2)
    print(type(t))
    t=1,2
    print(type(t))
    
    #也可以先创建列表再转换成元组
    l=[1,2,3]
    t=tuple(l)
    print(type(t))
    print(t)
    
    '''
    输出:
    <class 'tuple'>
    <class 'tuple'>
    <class 'tuple'>
    <class 'tuple'>
    (1, 2, 3)
    '''
    

2.5 集合 set

同数学定义,是一堆确定无序唯一的数据

2.5.1 集合的创建
  • 集合的创建容易写错成字典
    s=set()
    print(type(s))
    s={1,2}
    print(type(s))
    
    #当使用空大括号时会被当成字典!
    s={}
    print(type(s))
    
    '''
    输出:
    <class 'set'>
    <class 'set'>
    <class 'dict'>
    '''
    
  • 可以利用集合的唯一性来过滤列表,剔除重复元素
    l=[1,1,2,2,1,0,0]
    s=set(l)
    print(s)
    
    '''
    输出:
    {0, 1, 2}
    '''
    
2.5.2 内置函数
  • .len()/.max()/.min()同列表一致

  • .add()

    • 向集合内添加元素
  • .remove()/.discard()/.pop()

    • 都是删除元素

    • .remove()删除指定元素,若元素不存在会报错

    • .discard()同样是删除指定元素,但是元素不存在不会报错

    • .pop()随机移除一个元素

      s={1,2,3,'aaa',7}
      s.remove(3)
      print(s)
      s.remove(0)
      
      '''
      输出:
      {1, 2, 7, 'aaa'}
      
      Traceback (most recent call last):
        File "script.py", line 4, in <module>
          s.remove(0)
      KeyError: 0
      
      Exited with error status 1
      '''
      
      s={1,2,3,'aaa',7}
      s.discard(3)
      print(s)
      s.discard(0)
      print(s)
      
      s.pop()
      print(s)
      
      '''
      输出:
      {1, 2, 7, 'aaa'}
      {1, 2, 7, 'aaa'}
      {2, 7, 'aaa'}
      '''
      
  • 集合函数(同数学定义)

    函数含义
    A.intersection(B)A与B的交集
    A.difference(B)A与B的差集
    A.union(B)A与B的并集
    A.issubset(B)B是否为A的子集
    A.issuperset(B)B是否为A的超集
  • frozenset()

    • 冰冻集合,即集合不可以做任何修改

2.6 字典 dict

2.6.1 字典的创建
  • 传统直接赋值都比较熟悉,不再赘述
  • fromkeys() 创建一个新字典
    • dict.fromkeys(seq[, values]) 以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
      seq=['name','age','sex']
      values=0
      d=dict.fromkeys(seq, values)
      print(d)
      
      '''
      输出:
      {'name': 0, 'age': 0, 'sex': 0}
      '''
      
2.6.2 内置函数
  • .keys()
    • 以列表返回所有键值
  • .values()
    • 以列表返回字典所有值
  • .get()
    • 返回指定键的值
  • .update()
    • 将一个字典更新到另一个字典当中
d={'name': 0, 'age': 0, 'sex': 0}
a={'telephone':110}

l1=d.keys()
l2=d.values()
x=d.get('age')
d.update(a)

print(l1)
print(l2)
print(x)
print(d)

'''
输出:
dict_keys(['name', 'age', 'sex', 'telephone'])
dict_values([0, 0, 0, 110])
0
{'name': 0, 'age': 0, 'sex': 0, 'telephone': 110}
'''
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值