列表:shoplist = ['apple', 'mango', 'carrot', 'banana']
字典:di = {'a':123,'b':'something'}
集合:jihe = {'apple','pear','apple'}
元组: t = 123,456,'hello'

1.列表
    空列表:a=[]
    函数方法:a.append(3)       >>>[3]    
          a.extend([3,4,5])       >>>[3,3,4,5]    添加一个列表序列
          a.insert(1,'hello')        >>>[3,'hello',3,4,5]
          a.remove(3)             >>>['hello',3,4,5] 删除第一个出现的3,没有3则报错
          a.pop()              >>>['hello',3,4]
          a.pop(0)              >>>[3,4]
          a.index(4)          >>>1    返回出现的第一个4的下标
          a.count(3)          >>>1    列表中元素3的个数
          a.sort        >>>[3,4]    排序
          a.reverse()        >>>[4,3]    反序
    删除元素的方法
        a.remove(3)    通过值删除元素,删除第一个为参数值得元素
        a.pop()       通过下标删除元素,默认删除列表最后一个值,带参数则删除下标为参数值的元素
        del a[0]       通过下标删除元素,
            del a[2:4] 删除a表下标为2,3的元素
        del a[:]   删除a列表所有元素
        del a       删除列表
    列表推导式:
        vec = [2,4,6]    
         [3*x for x in vec if x<6]    >>>[6,12]    3*2,3*4
        vec2 = [1,2,3]
        [x*y for x in vec for y in vec2]    >>>[2,4,6,4,8,12,6,12,18]
    嵌套列表推导式:
        mat = [
        [1,2,3],
        [4,5,6],
        [7,8,9]
        ]
        print ([[row[i] for row in mat] for i in [0,1,2]])    
        >>>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
    思考:list (zip(mat)) 和 list (zip(*mat))结果会有什么不同
2.元组
    空元组:t = ()
    元组赋值: t = (123,345)
           t[0]         >>>123
3.字典    
    d = {'Jack':'jack@mail.com','Tom':'Tom@main.com'}
    d['Jack']            >>>'jack@mail.com
    d['Jim'] = 'Jim@sin.com'    >>>{'Jim': 'Jim@sin.com', 'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}

  del d['Jim']    >>>{'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}
    list(d.keys())    将返回一个字典中所有关键字组成的无序列表
    sorted(d.keys()) 将返回一个字典中所有关键字组成的排序列表
    dict()    构造函数可以直接从key-value对中创建字典
    dict([('Tim',123),('Tiny',234)])    >>>{'Tiny': 234, 'Tim': 123}   
    推导式创建字典:
        {d2:d2+'@main.com' for d2 in list(d.keys())}
            >>>{'Jack': 'Jack@main.com', 'Tom': 'Tom@main.com'}
    练习:循环输出字典中的键值对:
        for name,email in d.items():
            print(name,email)
4.集合
    空集合:A = set() ※想要创建空集合,必须使用set()
    演示:
    basket = {'apple','orange','apple'}    >>>{'orange', 'apple'}    注意重复的元素只显示一个?
    'apple' in basket              >>>True
    'pear' in basket            >>>False

集合的数学运算:    
        a = set('ababcdabca')        >>>{'c', 'b', 'a', 'd'}
        b = {'a','b','m'}            >>>{'b', 'a', 'm'}
        a - b        >>>{'c', 'd'}
        b - a        >>>{'m'}
        a | b        >>>{'c', 'd', 'b', 'a', 'm'}
        a & b        >>>{'a','b'}
        a ^ b        >>>{'c','d','m'}
    集合推导式:
       {x for x in a if x not in 'ab'}    >>>{'c','d'}

Python中几种数据结构的整理,列表、字典、元组、集合的更多相关文章

  1. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  2. Python中3种内建数据结构:列表、元组和字典

    Python中3种内建数据结构:列表.元组和字典 Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中 ...

  3. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

  4. Python中的高级数据结构(转)

    add by zhj: Python中的高级数据结构 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数 ...

  5. 第二章 python中重要的数据结构(下)

    二.元组(tuple):不可变序列 跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号. #创建元组 >>> 1,2,3 (1, ...

  6. Redis 中 5 种数据结构的使用场景介绍

    这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis ...

  7. Python中如何获取类属性的列表

    这篇文章主要给大家介绍了在Python中如何获取类属性的列表,文中通过示例代码介绍的很详细,相信对大家的学习或者工作具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧. 前言 最近工作 ...

  8. python中常犯错误之字符串列表下标问题

    下标用得是中括号[] 不是小括号() 1,python中的小括号( ):代表tuple元组数据类型,元组是一种不可变序列.创建方法很简单,大多时候都是用小括号括起来的. 2.python中的中括号[ ...

  9. Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

    三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...

随机推荐

  1. Spark RDD概念学习系列之rdd的依赖关系彻底解密(十九)

    本期内容: 1.RDD依赖关系的本质内幕 2.依赖关系下的数据流视图 3.经典的RDD依赖关系解析 4.RDD依赖关系源码内幕 1.RDD依赖关系的本质内幕 由于RDD是粗粒度的操作数据集,每个Tra ...

  2. 2016 GDCPC 省赛总结

    大神们说,要多写博客,多总结,于是很久之前就开了博客,可是一篇文章都没有写,太懒也是,没什么时间也是.现在省赛结束了,也是时候好好总结一下了. 本来一开始,三个人对拿铜牌是很有把握的,在比赛一开始A了 ...

  3. 一些技术blog和安全blog

    1.安全blog: http://zenxds.com/blog/ http://navisec.it/ http://huaidan.org/ http://leapar.lofter.com/ h ...

  4. java如何遍历hashMap

    通过Map的entrySet方法.将返回一个set集合.然后遍历这个set集合: package com.howlaa.day04; import java.util.HashMap; import ...

  5. mac下versions 提交提示 SVN Working Copy xxx locked

    终端进入工程目录,执行 find . | grep ".svn/lock" | xargs rm

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤 系列目录 步骤设计很重要,特别是规则的选择. 我这里分为几个规则 1.按自行 ...

  7. java中的闭包和回调

    闭包(Closure)是一种能被调用的对象,它保存了创建它的作用域的信息.JAVA并不能显式地支持闭包,但是在JAVA中,闭包可以通过“接口+内部类”来实现,因为对于非静态内部类而言,它不仅记录了其外 ...

  8. Shell脚本编程——了解你的Linux系统必须掌握的20个命令

    要想详细了解你的Linux系统,为系统评估和性能调化提供准确的信息,那么,你会经常用到这几组命令. 一. 系统信息     1. 查看内核版本.编译主机.编译器版本和编译时间的信息    cat /p ...

  9. mysql --batch --skip-column-name --execute 使用

    mysql -h 127.0.0.1 -P 3306 -u root -p -D test --batch --skip-column-name --execute="select * fr ...

  10. Qss

    *{ font-size:13px; color:white; font-family:"宋体"; } CallWidget QLineEdit#telEdt { font-siz ...