Python学习笔记(4)集合、元组、dict、set

时间:2021-09-26 23:06:46

列表

  创建列表 

    1. 直接创建   

     >>> a = [1, '1', '1.0']
        >>> a
        [1, '1', '1.0']

 

      2. 使用list创建

       >>> a = list([1, '1', '1.0'])  >>> a [1, '1', '1.0']   #括号内可以用小括号、中括号、花括号。

 

  方法

    1. count 统计列表内元素的个数

      >>> a

      [1, 2, 3, 1, 1, 2, 3]
      >>> a.count(1)
      3

 

    2. index 查找元素所在列表的位置(列表中有相同的元素返回第一个的位置)

 

      >>> a

      [1, 2, 3, 1, 1, 2, 3]

      >>> a.index(1)

      0
      >>> a.index(2)
      1

 

    3. x in list 判断列表中是否有元素,返回True或False            

      >>> 1 in a

      True

      >>> 5 in a

      False

 

    4. append 列表尾添加元素

     >>> a = list([1,2,3,1,1,2,3])

      >>> a.append(4)
      >>> a
      [1, 2, 3, 1, 1, 2, 3, 4]

 

    5. insert 在列表中指定位置添加元素

      >>> a.insert(0, 5) 
      >>> a
      [5, 1, 2, 3, 1, 1, 2, 3, 4]

 

    6. extends() 在a列表后加入b列表的值

        >>> b = [5, 6, 7]

      >>> a.extend(b)

      >>> a
      [5, 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7]

 

    7. 修改列表值

      >>> a[0] = '5'

     >>> a

      ['5', 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7]

 

      8. 删除列表值

      pop() 删除元素并返回删除的值 默认删除最后一个元素,可以指定位置删除

      >>> a.pop()

       7

       >>> a.pop(0)

       '5'

 

      remove() 删除指定元素,有多个相同元素时删除列表中的第一个

      >>> a

       [1, 2, 3, 1, 1, 2, 3, 4, 5, 6]

       >>> a.remove(3)
       >>> a
       [1, 2, 1, 1, 2, 3, 4, 5, 6]

 

       del 指定位置删除元素或者删除列表

      >>> a

       [1, 2, 1, 1, 2, 4, 5, 6]
       >>> del a[1]
       >>> a
       [1, 1, 1, 2, 4, 5, 6]

         >>> del a

          >>> a
         Traceback (most recent call last):
         File "<pyshell#49>", line 1, in <module>
         a
         NameError: name 'a' is not defined

 

        clear() 清空列表内元素

 `      >>> a

                        [1, 1, 1, 2, 4, 5, 6]
                        >>> a.clear()
                        >>> a
                        []

 

    9. reverse()  置换顺序

     >>> a = [1,3,7,4,9]

      >>> a.reverse()

      >>> a

      [9, 4, 7, 3, 1]

 

    10. sort() 排序

      >>> a

      [9, 4, 7, 3, 1]
      >>> a.sort()
      >>> a
      [1, 3, 4, 7, 9]

      >>> a.sort(reverse = True)  # 倒序排序

      >>> a
      [9, 7, 4, 3, 1]

 

    11.  enumerate()

      >>> a

      [9, 7, 4, 3, 1]

      >>> for i, y in enumerate(a):

      i,y

      (0, 9)
      (1, 7)
      (2, 4)
      (3, 3)
      (4, 1)

 

元组(不能修改的列表)

  创建元组

    1. 直接创建

      a = (1, 6, 3, 9, 5)

 

    2. tuple()创建

      >>> b = tuple((1,6,3,8,5)) #里面的括号可以用小括号,中括号,花括号

      >>> b

      (1, 6, 3, 8, 5)

    

      元组内容一旦初始化后不能修改。

      >>> b[1] = 6

      Traceback (most recent call last):
      File "<pyshell#23>", line 1, in <module>
      b[1] = 6
      TypeError: 'tuple' object does not support item assignment

 

    方法

      1. sorted()

       >>> a
        (1, 6, 2, 8, 4)
        >>> sorted(a)
        [1, 2, 4, 6, 8]

 

 

字典

    字典是python中唯一的映射类型,可哈希表示key必须是不可变的类型,如:数字、字符串、元组。可变类型如:列表、字典。

      >>> a

       (1, 6, 2, 8, 4)
       >>> p = {a: 5}
       >>> p
       {(1, 6, 2, 8, 4): 5}

       >>> b

       [1, 2, 3, 4]
       >>> p = {b:3}
       Traceback (most recent call last):
       File "<pyshell#34>", line 1, in <module>
       p = {b:3}
       TypeError: unhashable type: 'list'

    

  创建字典

    1. 直接创建

     >>> dict1 = {'a': 'a',  1 : 1}

      >>> dict1

      {'a': 'a', 1: 1}

 

    2. dict创建

      >>> dict2 = dict(((1,1),('a','a')))

      >>> dict2
      {1: 1, 'a': 'a'}

 

  方法

    1.  dict.setdefault(a, b)                    #如果dict中没有key a,则在字典中增加a;如果已存在a则返回已有a的值,但不改变原字典。

    >>> dict2

      {1: 1, 'a': 'a'}
      >>> dict2.setdefault(444,111)
      111
      >>> dict2
      {1: 1, 'a': 'a', 444: 111}

      >>> dict2.setdefault(1, 4)

      1
      >>> dict2
      {1: 1, 'a': 'a', 444: 111}

    

    2. dict.get(a, b)    #从字典中根据key取值,如果字典中存在key则返回字典中key对应的值,没有则返回b

      >>> dict2

      {1: 1, 'a': 'a', 444: 111}
      >>> dict2.get(1,6)
      1
      >>> dict2.get(5,6)
      6

 

    3. del dict[a] #根据key删除字典中相应的数据

      >>> dict2

      {1: 1, 'a': 'a', 444: 111}
      >>> del dict2[1]
      >>> dict2
      {'a': 'a', 444: 111}

 

    4. clear()  #清空字典内的所有数据

       >>> dict2.clear()
       >>> dict2
         {}

 

    5. popitem()  #随即删除某组键值对,并以元组的方式返回

      >>> dict2
      {1: 1, 'a': 'a', 444: 111}
      >>> dict2.popitem()
      (444, 111)
      >>> dict2
      {1: 1, 'a': 'a'}

 

    6.  fromkeys 

     >>> dict1 = {}

      >>> dict1
      {}
      >>> dict1.fromkeys((1,2,3), 'numbers')
      {1: 'numbers', 2: 'numbers', 3: 'numbers'}

      >>> dict1

      {}
      >>> dict2 = dict1.fromkeys((1,2,3), 'numbers')
      >>> dict2
      {1: 'numbers', 2: 'numbers', 3: 'numbers'}

 

    7. sorted

      >>> dict1

      {1: 1, 5: 7, 2: 10, 4: 3}

      >>> sorted(dict1)
      [1, 2, 4, 5]

      >>> sorted(dict1.values())
      [1, 3, 7, 10]
      >>> sorted(dict1.items())
      [(1, 1), (2, 10), (4, 3), (5, 7)]

 

set 

  set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

  创建set

    >>> s1 = set(['111', '222', 'www'])  #创建set,传入list
    >>> s1
    {'www', '111', '222'}

    >>> s2 =set('yyfghgh')

    >>> s2

    {'f', 'y', 'g', 'h'}

  方法

    1.add 增加元素

      >>> s1

      {'www', '111', '222'}
      >>> s1.add('wwww')
      >>> s1
      {'www', 'wwww', '111', '222'}

 

    2. update

      >>> s1.update('www')

      >>> s1
      {'w', 'wwww', '222', '111', 'www'}

 

    3.remove

      >>> s1.remove('w')

      >>> s1
      {'wwww', '222', '111', 'www'}

 

    4.  pop  #随机删除内容

      >>> s1

      {'wwww', '222', '111', 'www'}
      >>> s1
      {'wwww', '222', '111', 'www'}
      >>> s1.pop()
      'wwww'
      >>> s1
      {'222', '111', 'www'}

 

    5. clear  #类似于列表

      >>> s1

      {'222', '111', 'www'}
      >>> s1.clear()
      >>> s1
      set()

 

 

     6. del 

     >>> del s1

      >>> s1
      Traceback (most recent call last):
      File "<pyshell#150>", line 1, in <module>
      s1
      NameError: name 's1' is not defined