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. 第九章 BootstrapTable的使用

    一.简介 BootstrapTable是一个Bootstrap 3 的表格插件,支持单选, 复选框, 排序, 分页等功能 官网:http://bootstrap-table.wenzhixin.net ...

  2. shell 变量的间接引用

    参考: 高级 bash 脚本编程指南 eval var1=\$$var2 变量间接引用 贴个脚本: server1=1.1.1.1 server2=1.1.1.2 server3=1.1.1.3 fo ...

  3. Hibernate学习笔记(3)---hibernate关联关系映射

    一对一关联 假设有两个持久化类(实体类)User与Address,它们之间存在一对一的关系 1,通过主键关联(个人偏向另外一种) User.hbm.xml文件配置 <id name=" ...

  4. Dubbo(五) Dubbo入门demo——helloworld

    前言 前面我已经介绍了dubbo的一些基本工具和知识,让大家简单的了解了下RPC框架和Dubbo.接下来就是重点了,Dubbo的helloworld项目. 一.搭建项目 首先我们新建三个maven项目 ...

  5. Redis学习笔记(三)Redis支持的5种数据类型的总结

    继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...

  6. Spring_Spring与AOP

    一.传统编程使用代理解决目标类增强问题 //主业务接口 public interface ISomeService { // 目标方法 void doFirst(); // 目标方法 void doS ...

  7. 关于 for 循环与 循环嵌套

    FOR循环精讲 > 1.初步结识 for是写出题的重要组成部分之一,每个题如果没有for循环根本是无法做出来的,可见for循环在c++语言中是有多么重要,那么for的格式是怎样的呢?? for( ...

  8. Unity3d 动态加载场景物件与缓存池的使用

    聊聊Unity3d动态加载场景物件那些事儿. 众所周知,在策划或美术设计完游戏场景地图后,一个场景中可能会存在成千上万个小的物件,比如石头,木箱子,油桶,栅栏等等等等,这些物件并不是游戏中的道具,仅仅 ...

  9. springboot(十七):使用Spring Boot上传文件

    上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9. ...

  10. 五分钟学习React(四):什么是JSX

    JSX,即javscript XML,是js内定义的一套XML语法.目前是使用babel作为JSX的编译器.这也是在前几期中载入babel的原因. Facebook引入JSX是为了解决前端代码工程复杂 ...