1、元组

元组特点
元组是不可变的
两个元组可以做加法,不能做减法

元组的方法

>>> S
('a', 'b', 'c', 'd', 'e')
>>> S=('a','b','c','d','e','c','f')
.count(x)统计某个元素在元组中出现的次数
>>> S.count('c')
2
>>> S.count('a')
1
.index(x)从列表中找到某个值第一个匹配项的索引位置
>>> S.index('a')
0
>>> S.index('c')
2
>>>
如果要修改元组就直接用list把元组变成列表
>>> a=(1,2,3,4)
>>> a
(1, 2, 3, 4)
>>> a=list(a)
>>> a
[1, 2, 3, 4]
>>>
同理要将list变成元组只需要用tuple即可
>>> a=tuple(a)
>>> a
(1, 2, 3, 4)
>>>

2、集合

特点

集合是无序的,并且元素不重复,集合是可变对象
>>> S={1,2,3,4,4,5,5,56,6,6}
>>> S
{1, 2, 3, 4, 5, 6, 56}
>>>

不能用a={}来创建集合
创建集合的方法用set函数
创建空集合
>>> b=set()
>>> b
set()
>>> type(b)
<class 'set'>
>>>
集合的属性及方法
s.add()添加单个元素
>>> a
{1, 2, 3, 4}
>>> a.add(10)
>>> a
{1, 2, 3, 4, 10}
>>>
s.update()添加多个元素
>>> b
{3, 4, 5, 6}
>>> b.update((11,22,33,44,55)) #注意update中要用元组
>>> b
{33, 3, 4, 5, 6, 11, 44, 22, 55}
>>>
s.remove()移除元素
>>> a
{1, 2, 3, 4, 10}
>>> a.remove(10)
>>> a
{1, 2, 3, 4}
>>>
s.clear()清空集合
>>> b
{33, 3, 4, 5, 6, 11, 44, 22, 55}
>>> b.clear()
>>> b
set()
>>>
集合运算

交集

>>> a={1,2,3,4}
>>> b={3,4,5,6}
>>> a & b
{3, 4}

并集
>>> a | b
{1, 2, 3, 4, 5, 6}
>>> a - b
{1, 2}
>>>

差集
>>> b -a
{5, 6}
>>>

3、字典
字典的创建:{key:value}
>>> F={'a':1,'b':2}
>>> F
{'a': 1, 'b': 2}
>>>
或者dict(a=1,b=2)
用dict()创建字典,键如果是字符串,则可以不用加引号
>>> D=dict(a=1,b=2)
>>> D
{'a': 1, 'b': 2}
>>>
特点:
1、字典中的元素是无序的
2、不允许同一个键出现两次,即键必须唯一,如果出现两次则最后一次为准
3、键必须不可变,所以可以用数字,字符串或元组充当,而列表就不行,列表时可变的
字典添加和修改
新值对应的键名如果存在,就是修改操作,否则就是添加操作
>>> person=dict(a=1,b=2)
>>> person
{'a': 1, 'b': 2}
>>> person['a']
1
>>> person['a']=100
>>> person['c']=19
>>> person
{'a': 100, 'b': 2, 'c': 19}
>>>

in not in 判断键是否在字典中存在,在返回true,否则返回false
字典的属性及方法
>>> person
{'a': 100, 'b': 2, 'c': 19}
.update({})在字典中添加多个项
>>> person
{'b': 2, 'c': 19}
>>>
>>> person.update({'n':111,'m':222,'h':333})
>>> person
{'b': 2, 'c': 19, 'n': 111, 'm': 222, 'h': 333}
>>>
.items()返回字典的各个项
>>> person.items()
dict_items([('a', 100), ('b', 2), ('c', 19)])
.keys()返回字典的键
>>> person.keys()
dict_keys(['a', 'b', 'c'])
.values()返回字典的值
>>> person.values()
dict_values([100, 2, 19])
>>>
.get(k)如果k存在,则返回k值,否则返回None
>>> person.get('k')
>>> print(person.get('k'))
None
.get(k,x)如果键k在,返回键k的值,不存在则返回x
>>> print(person.get('k','x'))
x
>>>
.pop(k)返回并移除键k所对应的元素,不存在职责抛出异常
>>> person
{'a': 100, 'b': 2, 'c': 19}
>>>
>>> person.pop('k')
Traceback (most recent call last):
File "<pyshell#92>", line 1, in <module>
person.pop('k')
KeyError: 'k'
>>>
>>> person.pop('a')
100
>>> person
{'b': 2, 'c': 19}
>>>
.pop(k,x)返回并移除键k所对应的元素,不存在则返回x
>>> person
{'a': 100, 'b': 2, 'c': 19}
>>> person.pop('k','x')
'x'
>>>
>>> person.pop('a','n')
100
>>> person
{'b': 2, 'c': 19}
>>>

字典的键对应的值如果是整型或者字符串,那么可以直接做加法运算(加要加同样的类型)

>>> person
{'b': 2, 'c': 19, 'n': 111, 'm': 222, 'h': 333}
>>> person['b'] +=10
>>> person['b']
12
>>>

>>> person['e']='abcd'
>>> person
{'b': 12, 'c': 19, 'n': 111, 'm': 222, 'h': 333, 'e': 'abcd'}
>>> person['e'] += 'cool'
>>>
>>> person['e']
'abcdcool'
>>>

4、常用运算符

算术运算符:+,-,*,/,%,**,//
赋值运算符:=,+=,-=,*=,/=,%= **=
比较运算符:==,!=,>,<.>=,<=
成员运算符:in,not in
身份运算符:is,is not
判断两个名字是否指向同一个对象,当id相同是返回True(==比较运算符)
逻辑运算符:and,or,not
and(与)两个条件都满足则成立返回True
or(或)有一个条件满足则成立返回True
not(非)取反

例子练习

一、已知字典ainfo = {'name':'lily','age':20}
1.加入两项使得输出的结果:
ainfo = {'name':'lily','age':20,'gender':'female','class':10}
>>> ainfo.update({'gender':'female','class':10})
>>> ainfo
{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}
>>>
2.访问字典中的所有项,访问字典的键,访问字典中的值
>>> ainfo.items()
dict_items([('name', 'lily'), ('age', 20), ('gender', 'female'), ('class', 10)])
>>> ainfo.keys()
dict_keys(['name', 'age', 'gender', 'class'])
>>> ainfo.values()
dict_values(['lily', 20, 'female', 10])
>>>
二、将这三项内容创建字典,按下面规则添加到同一个对象中:
(name = 'lily',age= 20,gender = 'female',class = 10)
(name ='jack',age= 25,gender ='male',class =10)
(name ='jane',age= 19,gender ='female',class =10)

>>> d1={'name':'lily','age':20,'gender':'female','class':10}
>>> d1
{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}
>>> d2=dict(name='jack',age=25,gender='male',Class=10) #--->该方法会把键转换成字符串
>>> d2
{'name': 'jack', 'age': 25, 'gender': 'male', 'Class': 10}
>>> d3=dict(name='jane',age=19,gender='female',Class=10)
>>> d3
{'name': 'jane', 'age': 19, 'gender': 'female', 'Class': 10}
>>>
1.将这三项内容创建的三个字典放到一个列表里。
[{},{}]
>>> List=[d1,d2,d3]
>>> List
[{'name': 'lily', 'age': 20, 'gender': 'female', 'class': 10}, {'name': 'jack', 'age': 25, 'gender': 'male', 'Class': 10}, {'name': 'jane', 'age': 19, 'gender': 'female', 'Class': 10}]
>>>
2.将这三项内容创建的三个字典放到一个字典里,要求字典以个人姓名为键,
其他信息组成的字典为姓名这个键所对应的值。(字典里面嵌套字典){'lily':{},'jack':{}}
例如info = {'lily':{'age':20,'gender':'female','Class':10}}

>>> ainfo[d1.pop('name')]=d1
>>> ainfo
{'lily': {'age': 20, 'gender': 'female', 'class': 10}}
>>>
>>> ainfo[d2.pop('name')]=d2
>>> ainfo
{'lily': {'age': 20, 'gender': 'female', 'class': 10}, 'jack': {'age': 25, 'gender': 'male', 'Class': 10}}
>>>
>>> ainfo[d3.pop('name')]=d3
>>> ainfo
{'lily': {'age': 20, 'gender': 'female', 'class': 10}, 'jack': {'age': 25, 'gender': 'male', 'Class': 10}, 'jane': {'age': 19, 'gender': 'female', 'Class': 10}}
>>>

d1.pop('name')取值之后返回name对应的值,剩下的d1就是去掉'name';'lily'之后的部分

Python3基础知识之元组、集合、字典的更多相关文章

  1. 【python基础】之元组 集合 字典

    元组 元组:元组和列表类似.但是元组中的元素是固定的(不能给一个元组添加,删除和替换元素以及重新排序) 1.创建元组 t1 = () #创建一个空元组 t2 = (1, 2, 3) t3 = tupl ...

  2. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  3. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  4. 菜鸟学IT之python3关于列表,元组,字典,集合浅认识!

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753 一.列表,元组,字典,集合分别如何增删改查及遍历. 列表 # 列表的 ...

  5. python基础语法3 元组,字典,集合

    元组: ========================元组基本方法===========================用途:存储多个不同类型的值定义方式:用过小括号存储数据,数据与数据之间通过逗号 ...

  6. python3中列表、元组、字典的增删改查说明详解

    python基础中的列表.元组.字典属于python中内置的序列数据结构.其中序列可以进行的操作包括索引.截取(切片).加.乘.成员检查等. 1.列表 列表(list)是最常用的python数据类型之 ...

  7. 学习Python3基础知识过程中总结

    print()中end==""的用法 例子:用Python3输出九九乘法表: for i in range(1,10): for j in range(1,i+1): s=i*j ...

  8. C# 基础知识系列- 3 集合数组

    简单的介绍一下集合,通俗来讲就是用来保管多个数据的方案.比如说我们是一个公司的仓库管理,公司有一堆货物需要管理,有同类的,有不同类的,总而言之就是很多.很乱.我们对照集合的概念对仓库进行管理的话,那么 ...

  9. python基础学习之元组和字典的功能方法

    什么是元组?(tuple) emmmmmm,这个没必要深究吧,就是一排'元素',一行 格式: a = (1,2,3,4,5,6,7,8,9)用小括号表示的,极为元组. 其有序,且不可更改,可以对比st ...

随机推荐

  1. Spring之设置Bean值

    Java实例的属性值可以有很多种数据类型.基本类型值.字符串类型.java实例甚至其他的Bean实例.java集合.数组等.所以Spring允许通过如下几个元素为Bean实例的属性指定值: value ...

  2. Robot Framework学习笔记(九)------创建资源和用户关键字

    一.测试套件下创建用户关键字 1.创建关键字测试套件右击->点击new user keyword,然后输入name,点击OK保存. 2.在用户关键字的edit点击settings,然后输入Arg ...

  3. jQuery 事件方法(二)

    方法 描述 bind() 向匹配元素附加一个或更多事件处理器 blur() 触发.或将函数绑定到指定元素的 blur 事件 change() 触发.或将函数绑定到指定元素的 change 事件 cli ...

  4. RESTful服务最佳实践

    本文主要读者 引言 REST是什么 统一接口 基于资源 通过表征来操作资源 自描述的信息 超媒体即应用状态引擎(HATEOAS) 无状态 可缓存 C-S架构 分层系统 按需编码(可选) REST快速提 ...

  5. sql server中的分页数据查询

    1.引言 今天在工作中遇到一个需要进行sql server分页数据查询的问题,但是分页数据查询的sql却忘记了,最终通过查询资料解决了该问题.现在把解决方法记下,以备查阅. 在这里需要感谢博客园的Ql ...

  6. 卸载CentOS7-x64自带的OpenJDK并安装Sun的JDK7的方法

    第一步:查看并卸载CentOS自带的OpenJDK 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java version "1.6.0& ...

  7. 用vue官方提供的模板vue-cli搭建一个helloWorld案例

    安装环境 安装node.js并配置环境变量 安装淘宝镜像,npm install -g cnpm --registry=https://registry.npm.taobao.org 安装webpac ...

  8. 数据结构-堆 C与C++的实现

    堆,是一种完全二叉树.而且在这颗树中,父节点必然大于(对于小顶堆为小于)子节点. 关于树的概念不了解可以看这里:http://www.cnblogs.com/HongYi-Liang/p/723144 ...

  9. jdk1.8新特性 : 接口中可以有普通方法(非静态方法)和静态方法 , 颠覆了之前我的理解 : 接口中只能有共有常量和抽象方法的概念,后面必须要加一句jdk1.7和1..7之前

    看到jdk某些接口中存在default方法,于是... http://shaomeng95.iteye.com/blog/998820    为什么接口只能是公有常量? public interfac ...

  10. js面向对象学习笔记(三):原型

    //原型:改写对象下面公用的方法或者属性,让公用的方法或者属性在内存中只存在一份(提高性能)//原型:prototype :要写在构造函数的下面var arr =[1,2,3,4,5];var arr ...