菜鸟学Python第五天

数据类型常用操作及内置方法

列表(list)

======================================基本使用======================================

  1. 用途

    用来存取多个同属性的值,用索引对应值,索引反映的是位置

  2. 定义方式

    在[]内用逗号分隔开多个任意类型的值

    l = [1, 2.2, 'str', 'list', '...']  # l= list([1, 2.2, 'str', 'list', '...'])
    • 类型转换

      list可以将str、list、dict、tuple等可以被for循环循环的类型转换为列表。

      注:list只可以将dict的key遍历出来

      d = {'name': 'Jason', 'age': 23, 'weight': 78, 'height': 183}
      L = list(d)
      print(L)

      ['name', 'age', 'weight', 'height']
  1. 常用操作+内置的方法

    • 优先掌握的操作

      1. 按索引取值:可以正向存取、也可以反向存取

        names = ['james', 'curry', 'paul', 'rose']
        print(names[3]) # 正向取值
        print(names[-3]) # 反向取值
        names[1] = 'irving' # 按索引更改列表元素
        print(names)

        rose
        curry
        ['james', 'irving', 'paul', 'rose']
        # 注意:当索引超出范围时,按索引更改列表元素则会报错
      2. 切片(顾头不顾尾,步长)

        names = ['james', 'curry', 'paul', 'rose']
        print(names[1:4])

        ['curry', 'paul', 'rose']
      3. 长度list.len():统计列表元素个数

        names = ['james', 'curry', 'paul', 'rose']
        print(len(names))

        4
      4. 成员运算in 、 not in:判断字符是否在列表内

      5. list.append() & list.insert() : 追加&插入

        names = ['james', 'curry', 'paul', 'rose']
        names.append('ivring')
        print(names)

        ['james', 'curry', 'paul', 'rose', 'ivring']
        -----------------------------------------------------------
        names = ['james', 'curry', 'paul', 'rose']
        names.insert(1,'ivring')
        print(names)

        ['james', 'ivring', 'curry', 'paul', 'rose']

        注:append的只能从列表的末尾进行添加,insert可以在设定索引位置的前面添加,不设置索引时默认添加在开头

      6. del list[索引]、list.remove(object)、list.pop(索引):删除

        del、remove、 pop的区别

        1. del是通用的删除方式,并不为list特有

        2. remove是按照list内的成员进行删除,而del、pop是按照索引进行删除操作。。

        3. del、remove删除后没有返回值,pop则返回删除的那个成员

        names = ['james', 'curry', 'paul', 'rose']
        del names[3] # 删除'rose'
        print(names.remove('paul')) # 删除‘paul’并打印返回值
        print(names.pop(1)) # 删除'curry'并打印返回值
        print(names) #打印最终列表

        None # remove返回值为空
        curry # pop返回值为‘curry’
        ['james'] # 最终列表
      7. 循环

        for循环

        names = ['james', 'curry', 'paul', 'rose']
        for i in names:
        print(i)
    • 需要掌握内容

      1. list.count(object):统计列表中某元素的个数

        names = ['james', 'curry', 'paul', 'rose', 'rose', 'rose', 'rose']
        print(names.count('rose'))

        4
      2. list.extend(iterable):将另一列表内元素添加到原列表中,并赋值给原列表

        names = ['james', 'curry', 'paul', 'rose']
        # print(names.count('rose'))
        names1 = ['love', 'Hardon']
        names.extend(names1) # 将names1添加到names后面并赋值给names,此操作无返回值
        print(names)

        ['james', 'curry', 'paul', 'rose', 'love', 'Hardon']
      3. list.index(iterable):从左到右查找列表中某元素第一次出现的位置

        names = ['james', 'curry', 'paul', 'rose', 'rose', 'rose', 'rose']
        print(names.index('rose'))

        3
      4. list.reverse():将list翻转,并赋值给原列表

        names = ['james', 'curry', 'paul', 'rose']
        names.reverse() # 翻转,此操作无返回值
        print(names)

        ['rose', 'paul', 'curry', 'james']
      5. list.sort():排序(默认从小到大,列表内必须为同一可比较类型)

        names = ['james', 'curry', 'paul', 'rose']
        names.sort() # 排序操作,无返回值
        print(names)

        ['curry', 'james', 'paul', 'rose']

======================================该类型总结====================================

存多个值

有序

可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

元组(tuple)

======================================基本使用======================================

  1. 用途

    元组就是一个不可变的列表

  2. 定义方式

    在()内用逗号分隔开多个任意类型的元素(逗号才是关键)

    t = (1, 2.2, 'aa')  # t = tuple()
    print(type(t))

    <class 'tuple'>

    类型转换:

    t1=tuple('hello')
    t2=tuple([1,2,3])
    print(t1)
    print(t2)

    ('h', 'e', 'l', 'l', 'o')
    (1, 2, 3)
  1. 常用操作+内置的方法

    • 优先掌握操作:

    1. 按照索引取值

    2. 切片

    3. 长度

    4. 成员运算

    5. 循环

      t = (1, 2, 3, 4, 5)
      print(t[3]) # 索引取值
      print(t[1: 3]) # 切片操作
      print(len(t)) # 长度计算
      print(2 in t) # 成员运算

      4
      (2, 3)
      5
      True
  • 需要掌握操作:

    1. tuple.index(object):从左到右查找某元素在元组中第一次出现的位置

    2. tuple.count(object):统计元组中某元素的个数

    t = (1, 2, 3, 3, 4, 5)
    print(t.index(2))
    print(t.count(3))

    1
    2

======================================该类型总结====================================

存多个值

有序

不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

字典(dict)

======================================基本使用======================================

  1. 用途

    记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性功能

  2. 定义方式

    在{}内用逗号分隔开多个元素,每个元素都是key:value的形式,其中key是不可变类型,通常是字符串类型,而value可以是任意类型。

     s = {'name':'James','age':'','height':'203 cm', 'T_tpye':'all_round'}
    # s = dict({'name':'James','age':'34','height':'203 cm', 'T_tpye':'all_round'})

    类型转换:加深理解

    #  第一种
    d=dict(x=1,y=2,z=3)
    print(d)

    {'x': 1, 'y': 2, 'z': 3}
    # 第二种
    items = [('name', 'egon'), ('age', 18), ('gender', 'male')]
    d = dict(items)
    print(d)

    {'name': 'egon', 'age': 18, 'gender': 'male'}
  3. 常用操作+内置的方法

    • 优先掌握

      1. 按key存取值:可存可取

        key存在则为赋值操作,key不存在则添加字典key:value

        msg = {'name': 'James', 'age': '', 'height': '203 cm', 'T_tpye': 'all_round'}
        msg['name'] = 'Lebron' # 修改key对应的value
        msg['team'] = 'lakers' # 添加字典key:value
        print(msg)

        {'name': 'Lebron', 'age': '', 'height': '203 cm', 'T_tpye': 'all_round', 'team': 'lakers'}

        dict['key']:没有则报错

        dict.get(key):没有报none

        msg = {'name': 'James', 'age': '', 'height': '203 cm', 'T_tpye': 'all_round'}
        print(dsg['team']) # key 不存在字典中,会报错
        print(msg.get('team')) #key 不在字典中返回None

        KeyError: 'team'
        None
      2. 长度len():统计字典中键值对的个数

      3. 成员运算in 或者not in(以字典的key为准)

      4. pop 、popitem(随机删):删除

        使用方法同字典pop,并返回删除key

      5. 键keys(),值values(),键值对items()

        >>> msg = {'name': 'James', 'age': '', 'height': '203 cm', 'T_tpye': 'all_round'}
        >>> msg.keys()
        dict_keys(['name', 'age', 'height', 'T_tpye'])
        >>> msg.values()
        dict_values(['James', '', '203 cm', 'all_round'])
        >>> msg.items()
        dict_items([('name', 'James'), ('age', ''), ('height', '203 cm'), ('T_tpye', 'all_round')])
      6. 循环

        msg = {'name': 'James', 'age': '', 'height': '203 cm', 'T_tpye': 'all_round'}
        for k, v in msg.items(): # k,v=('name', 'egon')
        print(k, v)

        name James
        age 34
        height 203 cm
        T_tpye all_round
    • 需要掌握

      1. dict.update():函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。

        msg = {'name': 'James', 'age': ''}
        msg1 = {'height': '203 cm', 'T_tpye': 'all_round'}
        msg.update(msg1) # 更新操作,无返回值
        print(msg)

        {'name': 'James', 'age': '', 'height': '203 cm', 'T_tpye': 'all_round'}
      2. dict.setdefault(key,value):当key存在时不改原值,并返回原值,当key不存在时增加新value

        msg = {'name': 'James', 'age': ''}
        print(msg.setdefault('age', ''))
        print(msg.setdefault('height', ''))
        print(msg)

        34
        203
        {'name': 'James', 'age': '', 'height': ''}

        注:当返回的value不是输入的新value时,标明字典中包含该key,当返回value是输入的心value时则表明之前字典中不包含该key,可以用来判断字典中是否含有某元素。

======================================该类型总结==================================== 存多个值 无序

可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

集合(set)

======================================基本使用======================================

  1. 用途

    • 关系运算

    • 去重

  2. 定义方式

    在{}内用逗号分隔开多个元素

    S = {1,2,3,4,5}  # S = set({1,2,3,4,5})

    元素的特点:

    • 集合内元素必须是不可变类型

    • 集合内元素无序

    • 集合内元素不可重复

    类型转换:

      set可以将能用for循环循环的数据类型转换为集合

    3. 常用操作+内置的方法

    • 优先掌握

      1. 长度len():返回集合内元素个数

      2. 成员运算in、not in:判断集合中是否存在某元素

      3. 并(合)集set.union(set1, set2...),快捷键:|

      4. 交集set.intersection(set1, set2 ... ),快捷键:&

      5. 差集set.difference(set),快捷键:-

      6. 对称差集set.symmetric_difference(set),快捷键:^

      a_club = {'jason', 'tony', 'jay', 'allen'}
      b_club = {'rose', 'alice', 'allen', 'tony'}
      print(a_club | b_club) # 并集
      print(a_club & b_club) # 交集
      print(a_club - b_club) # 差集,只在a_club中的成员
      print(b_club - a_club) # 差集,只在b_club中的成员
      print(a_club ^ b_club) # 对称差集 没有同时在两个集合的成员

      {'allen', 'jason', 'rose', 'jay', 'alice', 'tony'}
      {'allen', 'tony'}
      {'jason', 'jay'}
      {'alice', 'rose'}
      {'jason', 'rose', 'jay', 'alice'}
      1. ==:集合中元素完全一致

      2. 父集和子集>=、<=:描述的是一种包含和被包含的关系

        s1 = {1, 2, 3}
        s2 = {1, 2, 3}
        s3 = {1, 2, 3, 4}
        print(s1 == s2)
        print(s3 >= s1)
        print(s1 <= s3)


        True
        True
        True
    • 需要掌握

      1. update();更新

        s1={1,2,3}
        s1.update({3,4,5,6})
        print(s1)

        {1, 2, 3, 4, 5, 6}
      2. pop():随机删,并返回删除元素

        s1={1,'aa','bb',3}
        print(s1.pop())

        1
      3. remove():按元素删,当元素不存在时报错

      4. discard():按元素删,当元素不存在时不报错

        # remove
        s1 = {1,'aa','bb',3}
        res = s1.remove('bbbbbb')
        print(s1) # 不存在即报错
        print(res) # 打印返回值(无返回值)

        KeyError:'bbbbbb'

        # discard
        s1 = {1,'aa','bb',3}
        res = s1.diiscard('bbbbbb')
        print(s1) # 不存在不报错
        print(res) # 没有返回值

        {3, 1, 'aa', 'bb'}
        None
      5. add():添加

        s1 = {1,'aa','bb',3}
        s1.add(4)
        print(s1)

        {1, 3, 'aa', 4, 'bb'}

        集合的去重的局限性:

        1. 只能针对不可变类型*

        2. 不能保证原来的顺序

======================================该类型总结====================================

存多个值

无序

可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

Python列表,元组,字典,集合详细操作的更多相关文章

  1. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  2. python 列表 元组 字典 集合

    列表 lst = [i for i in range(10)] 切片 # 把下标小于2的显示出来 print(lst[:2]) # 把10个数有大到小输出 print(lst[::-1]) # 把下标 ...

  3. Python 列表&元组&字典&集合

    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...

  4. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  5. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  6. python_列表——元组——字典——集合

    列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

  7. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  8. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

  9. Python列表,元组,字典,字符串方法笔记

    01. 列表 1.1 列表的定义 List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义,数据 之间使用 , 分隔 列 ...

随机推荐

  1. SpringBoot | Velocity template

    SpringBoot版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId& ...

  2. 洛谷P2047||bzoj1491 [NOI2007]社交网络

    https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可 ...

  3. mint-ui pull down不起作用及解决方案

    <template> <div style="min-height:200px"> <mt-loadmore :top-method="lo ...

  4. ubuntu下sublime屏蔽alt键显示顶部菜单栏

    在sulime下喜欢把方向键映的上下左右映射为alt+i/k/j/l ,按单词移动alt+h/; 但是在ubuntu下按alt会弹出sublime的顶部菜单栏,如果想屏蔽sublime按alt屏蔽菜单 ...

  5. Java——HashSet和TreeSet的区别

    HashSetHashSet有以下特点 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元素可以是null,但只能放入一个null当向HashSet集合中存入一个元素时,HashSe ...

  6. MFC双缓冲解决图象闪烁[转]

    转载网上找到的一篇双缓冲的文章,很好用.http://www.cnblogs.com/piggger/archive/2009/05/02/1447917.html__________________ ...

  7. Objective-C Loops

    There may be a situation, when you need to execute a block of code several number of times. In gener ...

  8. Eclipse介绍

    Eclipse是著名的跨平台开源集成开发环境(IDE).最初主要用来Java语言开发.Eclipse的本身只是一个框架平台,通过插件使其作为C/C++.Python.PHP等其他语言的开发工具.Ecl ...

  9. jquery最常用的几个方法。——可删除

    jquery使用手册:http://www.eduyo.com/doc/jquery/cheatsheet.html $(this).hasClass("input_money") ...

  10. Asp.net Mvc 表单验证(气泡提示)

    将ASP.NET MVC或ASP.NET Core MVC的表单验证改成气泡提示: //新建一个js文件(如:jquery.validate.Bubble.js),在所有要验证的页面引用 (funct ...