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. MySQL优化三 表结构优化

    由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大 ...

  2. 固定底部导航菜单-续集(BottomMenu-移动端V3.0)

    固定底部导航菜单-续集(BottomMenu-移动端V3.0) 适应在客户端,点击弹出二级菜单.因为手机不支持hover.所以使用click点击实现弹出菜单,并且一级菜单聚焦变色,变化背景图片 核心c ...

  3. css实现切角效果

    1. 一个切角 思路:如果我们要得到有一个切角的元素,我们只需要使用一个径向渐变就可以达到这个目标,这个渐变需要把一个透明色标放在切角处,然后再相同的位置设置另一个色标,并且把它的颜色设置成我们想要的 ...

  4. bootstrap媒体查询

    Bootstrap 中的媒体查询允许您基于视口大小移动.显示并隐藏内容.下面的媒体查询在 LESS 文件中使用,用来创建 Bootstrap 网格系统中的关键的分界点阈值. /* 超小设备(手机,小于 ...

  5. 浅谈JavaScript的面向对象程序设计(四)

    本文继续讲解JavaScript的面向对象程序设计.继承是面向对象语言中的一个基本概念,面向对象语言支持两种继承实现方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.但是在 ...

  6. cookie记住浏览位置

    /*返回上次浏览位置*/ $(function () { var str = window.location.href; str = str.substring(str.lastIndexOf(&qu ...

  7. 菜鸟VUER学习记——零0章、打开新的大门

    是什么 基于MVVM模型,核心库只关注视图层,通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件的js框架.根据项目的复杂度和需求,渐进的加入插件以达到恰到好处的程度. 解决问题 UI组件化 ...

  8. RabbitMQ的基本使用到高级特性

    简介 继上一篇 CentOS上安装RabbitMQ讲述RabbitMQ具体安装后,这一篇讲述RabbitMQ在C#的使用,这里将从基本用法到高级特性的使用讲述. 前序条件 这里需要增加一个用户,并且设 ...

  9. Java模拟http上传文件请求(HttpURLConnection,HttpClient4.4,RestTemplate)

    先上代码: public void uploadToUrl(String fileId, String fileSetId, String formUrl) throws Throwable { St ...

  10. [搬运] C# 这些年来受欢迎的特性

    原文地址:http://www.dotnetcurry.com/csharp/1411/csharp-favorite-features 在写这篇文章的时候,C# 已经有了 17 年的历史了,可以肯定 ...