一、容器

    0.判断所有的容器是否为空,用if not xxx(容器名):来进行判断

    1.list 列表

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

    列表的数据项不需要具有相同的类型。

# li = [,,,,'',[,,],{:'one',:'two'}]
# print(type(li)) #创建的实例就是list类型
# print(type(list)) #对于内部的实例是type类
# print(li)
# print(li[])
# print(li[-]) # 打印倒数第一个,就是最后一个元素
# print(li[-]) # 打印倒数第二个元素就是[,,]这个数组
#
#
# # 查找元素的位置
# print(li.index(''))
# print(li.index([,,])) #添加元素
# l_a = [,,]
# l_a.append() #将元素添加进入数组的末尾
# print(l_a)
# l_a.append()
# print(l_a)
# l_a.append()
# print(l_a)
# # 将7 加进数组中去
# l_b=[,,]
# l_a.extend(l_b) #通过从可以迭代的列表中来添加元素
# print(l_a) # 判断容器是否为空,直接使用if not 集合
# l_a=[]
# if not l_a: #如果l_a是空集合not xx和isNone不是一回事,对于所有的集合,要判断其是否为空,
# # 使用not ,if not 容器名称 : #集合为空
# print('empty')
# if len(l_a)==:
# print('Empty') # t = (,,,'')
# print(type(t))
# t[] = 'a' #这个地方要注意tuple数据类型不支持赋值操作
# tuple也不支持append()方法
# t.append('x')
#
# li = [,,,,,]
# del(li[-]) #删除最后一个元素的操作
# print(li)

    2. tuple 元组(只读列表)

    3. dict 字典 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。(dict内部是无序的)

# 字典数据类型
d = {'a':,'b':,:'one',:'two',:[,,]}
# print(type(dict)) # dict的数据类型是type数据雷星
# print(type(d)) # 实例化变量,会直接生成dict对象
# print(d)
#
# # 访问字典数据类型的数组
# print(d['a'])
# print(d[])
# print(d[])
# # 判断元素是否存在
# print('c' in d) #'c'这个字符是不在数组中的
# print( in d) # 这个数字是在数组d的
# del(d[]) #删除3这个key所对应的键值对
# print(d) # # 根据key来做遍历
# for key in d:
# print(d[key])
# print('.........') # 通过key value的形式来做遍历
# for key,value in d.items() :
# print(key,value)
#
# keys = d.keys()
# print(type(keys)) # key的类型是<class 'dict_keys'>类型
# print(keys) # 这里面的key值有'a','b',,,

    4. set 集合 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算。

#set 是一个无序不重复的容器,能够实现自动去重
s_a = set([,,,,,,])
s_b= set([,,,,,])
print(s_a)
print(s_b) # 判断元素是否存在于set中
print( in s_a) #True
print( in s_a) #False # 求出set的并集
print(s_a | s_b)
print(s_a.union(s_b)) # 求出set的交集
print(s_a & s_b)
print(s_a.intersection(s_b)) # 求出差集 A - B,这个地方就是A -A&B 的部分
print(s_a-s_b)
print(s_a.difference(s_b)) # 对称差 就是 (A | B) - (A & B) 在这个set集合中,{,,}是他们的公共部分
print(s_a ^ s_b)
print(s_a.symmetric_difference(s_b)) # 修改元素,将x元素添加进x集合中
s_a.add('x')
print(s_a)
print(s_a.update([,,,]))
print(s_a) # 删除元素
s_a.remove() #删除元素70
# s_a.remove() #这个地方会报错KeyError:
print(s_a) print(len(s_a)) #对 set进行遍历
for i in s_a:
print(i)

二、切片:高效的切一个子数组出来

存取序列(列表,元组,字符串)的任意一部分

格式:seq[开始索引:结束索引:步长]

  默认值

  负数索引

  负数步长

# 切片操作 [start:end;steps]
li =list(range()) #生成0 到9之间的数组
print(li[:]) # 得出来的子数组是[, , ],是一个左闭右开的区间
print(li[:])
print(li[:])
print(li[::])
print(li[::])
print(li) # 负值怎么处理?
print(li[:-]) # 从第6个元素开始计算,到倒数第二个元素截止
print(li[::-]) # 倒数索引,从9开始计算,最后一个元素是1,不包括0
print(li[::-]) # 从9开始进行倒排即9-0之间的所有元素
# 切片生成一个新的对象
print(li) #保持原样
print(li[::-]) # 对数组切片进行快速反转

三、列表推导

# li = list(range())
#
# li = []
#
# for i in range():
# li.append(i)
# print(li)
#
# li = []*
# print(li) #生成了有10个0 的数组 #生成前10个偶数,一行搞定
# li = [i* for i in range()]
# print(li) # li_2d = [[]*]* # 产生一个3行3列的全0数组,这个地方做了引用,每一列都是同一个对象,所以在修改的时候,只要修改第一个元素,那么所有的行的第一个元素都会变
# print(li_2d)
# li_2d[][]=
# print(li_2d) # li_2d = [[] * for i in range() ]
# print(li_2d)
# li_2d[][] =
# print(li_2d) # 找出列表中所有的偶数 set
s = {x for x in range() if x%==}
print(s)
print(type(s)) # 找出列表中所有的偶数 dict
d = {x:x%== for x in range()} #快速判断某个数是不是偶数
print(type(d))
print(d)

四、生成器

五、迭代器

1.问题的提出

  (1)可以直接作用于for循环的对象统称为可迭代对象:Iterable

  (2)可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator(表示一个惰性计算的序列)

2. 集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

python学习笔记(9):容器的更多相关文章

  1. python学习笔记(7)容器以及容器的访问使用

    一.容器 1.list列表 序列是python中最基本的数据结构,序列中的每个元素都分配一个数字,它的位置或索引,第一个索引是0,第二个索引是1,以此类推 Built-in mutable seque ...

  2. Python学习笔记_Python对象

    Python学习笔记_Python对象 Python对象 标准类型 其它内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比較 对象身份比較 布尔类型 ...

  3. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  4. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  5. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  6. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  9. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

随机推荐

  1. Android与IOS的优缺点比较 对 Android 与 IOS 比较是个个人的问题。 就好比我来说,我两个都用。我深知这两个平台的优缺点。所以,我决定分享我关于这两个移动平台的观点。另外,然后谈谈我对新的 Ubuntu 移动平台的印象和它的优势。 IOS 的优点 虽然这些天我是个十足的 Android 用户,但我必须承认 IOS 在某些方面做的是不错。首先,苹果公司在他们的设备更新方面有更

    Android与IOS的优缺点比较 对 Android 与 IOS 比较是个个人的问题. 就好比我来说,我两个都用.我深知这两个平台的优缺点.所以,我决定分享我关于这两个移动平台的观点.另外,然后谈谈 ...

  2. 牛客网 珂学送分( 期望DP )

    题意 : 题目链接 分析 : 听队友说一般概率从前往后推.期望从后往前推......... #include<bits/stdc++.h> using namespace std; ; d ...

  3. Cmdow-一个win32窗口管理命令行工具

    最近有个需求,将同一个程序运行8个实例,并按照规则在两个窗口上分布,本以为用bat就可以实现,结果发现没那么容易,搜了很久找到了这个工具cmdow.exe,发现这个东西真不错. 符合了我们项目的需求: ...

  4. border、outline、boxshadow那些事

    border 边框是我们美化网页.增强样式最常用的手段之一.例如: <div class="text"></div> .text { width: 254p ...

  5. 微信小程序支付 java

    原文:https://blog.csdn.net/zhourenfei17/article/details/77765585 话不多说,直接开撸. 支付流程步骤: 1)首先调用wx.login方法获取 ...

  6. Swift权限控制

    最后更新:2017-03-20 private: 只能在当前类里面访问 fileprivate: 只能在当前文件内访问 internal:internal访问级别所修饰的属性或方法在源代码所在的整个模 ...

  7. session.flush()与session.clear()的区别

    session.flush()和session.clear()就针对session的一级缓存的处理. 简单的说, 1 session.flush()的作用就是将session的缓存中的数据与数据库同步 ...

  8. leetcode-mid-array-73 set matrix zeros

    mycode 空间复杂度 m+n 思路:用set把为0元素所在行.列记录下来 注意:注释的方法更快 class Solution(object): def setZeroes(self, matrix ...

  9. qbzt day2 上午

    内容提要 贪心 分治 分块 搜索 接着昨天的讲 过河问题 考虑AB是最快的人,CD是最慢的人,要把CD两个人送过河,只有两种方案,牵扯到四个人,并且n个规模的原问题化成了n-2个规模的子问题 那么最后 ...

  10. PhantomJs 与 Casperjs

    利用PhantomJS做网页截图经济适用,但其API较少,做其他功能就比较吃力了. CasperJs是对phantomjs的一次封装.即phantomjs是原生的,而casperjs是封装在以phan ...