元组:

========================元组基本方法===========================
用途:存储多个不同类型的值
定义方式:用过小括号存储数据,数据与数据之间通过逗号分隔,(值不能被改变)
        定义容器类型的时候,如果里面只有一个值,在值的后面加上一个逗号*****
        在元组中如果不加,就是输入参数类型

t1 = ('a','b','c','a')  # t1 = tuple(('a','b'))

常用方法:

"""
1、索引取值(正取,反取)
2、索引切片
3、成员运算in ,not in
4、len()
"""

print(t1[0:2])
# ('a', 'b')
print(t1.count('a'))
#
print(t1.index('a',1)) # 从第2个元素开始查找
#

=========================类型总结==========================
有序or无序 : 有索引,有序
可变or不可变: 不可变
存一个值or存多个值:存多个值

字典:

========================字典(dict)基本方法===========================
用途:
定义方式:通过大括号来存储数据,通过key:value来定义键值对数据,每个键值对中间通过逗号分隔

key:一定是一个不可变类型
value:可以是任意类型

d1 = {(1,2):[1,2]}

"""
字典的三种定义方式·:
"""

# 1、*****
d1 = {'name':'egon','age':84} # 2、*****
d2 = dict({'name':'egon'}) # 3、zip : 了解即可
l1 = ['name',"age"]
l2 = ['egon',18]
z1 = zip(l1,l2)
print(dict(z1))

常用方法:

"""
1、优先掌握的
1、按照key:value映射关系取值(可存可取)
2、成员运算in,not in # 默认判断key
3、len() # 获取当前字典中键值对的个数
"""

d1 = {'name':'egon', 'age': 73}
print(d1['name']) #egon
print(d1['age']) #
d1['name'] = 'tank' #已存在,修改值
d1['gender'] = 'male' #创建新的键值对
print(d1)
print('egon' in d1) #False 默认判断key

内置方法:

get : 获取指定key的值,如果值不存在·,默认返回None,可以通过第二个参数修改默认返回的内容

print(d1['gender'])    #报错,没有gender
print(d1.get('gender')) # 返回None
print(d1.get('gender','没有')) # 返回'没有'

keys、values、items

d1 = {'name':'egon', 'age': 73}
print(d1.keys()) #返回所有的key
#dict_keys(['name', 'age'])
print(d1.values()) #返回所有的值
#dict_values(['egon', 73])
print(d1.items()) #返回所有键值对
#dict_items([('name', 'egon'), ('age', 73)]) for key in d1.keys():
print(key) # name,age
for value in d1.values():
print(value) # egon,73
for i in d1.items():
print(i) #('name', 'egon'),('age', 73)
for key,value in d1.items():
print(key,value)#name egon,age 73

pop:删除 : 指定key进行删除,有返回值,返回为对应的value

d1 = {'name': 'egon', 'age': 73}
a = d1.pop('name')
print(d1) # {'age': 73}
print(a) # egon

popitem() ,随机弹出一个键值对,有返回值,返回只是一个元组

d1 = {'name':'egon', 'age': 73,'gender':'male','a':""}
d1.popitem() #没有参数
print(d1) #{'name': 'egon', 'age': 73, 'gender': 'male'}

update : 用新字典替换旧字典

d1 = {'name':'egon', 'age': 73,'gender':'male','a':""}
d1.update({'b':''}) #无则添加
print(d1) #{'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1', 'b': '2'}
d1.update({'name':'tank'}) #有则修改
print(d1) #{'name': 'tank', 'age': 73, 'gender': 'male', 'a': '1', 'b': '2'}

fromkeys : 生产一个新字典, 第一个参数(列表),它会以第一个参数中各个元素为key,以第二个参数为值,组成一个新字典

print(dict.fromkeys([1,2,3],['ke','k1'])) #{1: ['ke', 'k1'], 2: ['ke', 'k1'], 3: ['ke', 'k1']}
#print(d1.fromkeys([1,2,3],['ke','k1'])) 与上面语句效果相同

setdefault :key不存在新增键值对,有返回值,返回新增value,key存在返回对应的value

d1 = {'name':'egon', 'age': 73,'gender':'male','a':""}
print(d1.setdefault('name',1)) #返回egon,因为存在name的key
print(d1) # {'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1'}
print(d1.setdefault('abc',233)) #返回233,新建键值对,返回定义的值
print(d1) # {'name': 'egon', 'age': 73, 'gender': 'male', 'a': '1', 'abc': 233}

=========================类型总结==========================
有序or无序 : 无序
可变or不可变 :可变类型
存一个值or存多个值 : 存多个值

集合:

========================集合基本方法===========================

用途: 去重、关系运算
定义方式: 通过大括号存储数据,每个元素通过逗号分隔
定义空集合,必须使用set()来定义
d1 = {}  #字典
ss1 = set()  #定义集合
常用方法:

"""
合集:|
交集:&        
差集:-
对称差集:^
"""

"""
1、集合中不可能出现两个相同的元素
"""

python_student = {'egon', 'jason', 'tank', 'owen', 'egon'}
linux_student = {'frank', 'alex', 'egon'}
go_student = {'egon'}
print(python_student | linux_student)
#{'frank', 'alex', 'tank', 'egon', 'owen', 'jason'}
print(python_student & linux_student)
#{'egon'}
print(python_student - linux_student)
#{'jason', 'tank', 'owen'}
print(linux_student - python_student)
#{'frank', 'alex'}
print(python_student ^ linux_student)
#{'alex', 'jason', 'owen', 'frank', 'tank'}
print(python_student > go_student)
#True
print(python_student < linux_student)
#False
l1 = [1, 2, 3, 1, 2, 9, 1, 5, 6, 7]
print(l1)
s1 = set(l1)
print(s1) #{1, 2, 3, 5, 6, 7, 9}
print(type(s1)) #<class 'set'>
l2 = list(s1) #[1, 2, 3, 5, 6, 7, 9]
print(l2)
print(type(l2)) #<class 'list'>
python_student = {'egon', 'jason', 'tank', 'owen', 'egon'}
for i in python_student:
print(i)
add_slot = new_slot.difference(old_slot)    # 取差集

up_slot = new_slot.intersection(old_slot)   # 取交集

内置方法:

add()

remove()  #值不在,报错

dicard()     #值不在,不报错

针对不可变类型,去重并保证顺序,则需要直接写代码

=========================类型总结==========================
有序or无序 : 无序
可变or不可变 : 可变(无法定位,不能修改,但是可以增删元素)
存一个值or存多个值 : 存多个值

总结:

"""
存一个:整型、浮点型、字符串
存多个值:列表、元组、字典、集合

可变or不可变:
可变:列表,字典、集合
不可变:整型、浮点型、字符串、元组、集合 ( frozenset('tank')定义的集合)

有序or无序:
有序:字符串、列表、元组
无序:字典、集合

占用空间:
字典
列表
元组
集合
字符串
数字类型
"""

python基础语法3 元组,字典,集合的更多相关文章

  1. Python 基础-python-列表-元组-字典-集合

    列表格式:name = []name = [name1, name2, name3, name4, name5] #针对列表的操作 name.index("name1")#查询指定 ...

  2. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  3. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  4. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  5. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

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

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

  7. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  8. python基础语法、数据结构、字符编码、文件处理 练习题

    考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

  9. python基础语法及知识点总结

    本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...

随机推荐

  1. 解决Spring和SpringMVC扫描注解类的冲突问题

    原文地址:https://blog.csdn.net/xiaobao5214/article/details/52042041 最正确的配置方式:在主容器中applicationContext.xml ...

  2. QuantLib 金融计算——案例之普通欧式期权分析

    目录 QuantLib 金融计算--案例之普通欧式期权分析 概述 普通欧式期权公式法定价 1. 配置期权合约条款 2. 构建期权对象 3. 配置定价引擎 4. 计算 题外话:天数计算规则 Quote ...

  3. HTML5微信jssdk录音播放语音的方法

    HTML5微信jssdk录音播放语音的方法需要注意的2个问题1 就是一定要判断1秒内 录音都不算 ps:太短不能录音 2 录音超过1分钟 会发现正在录音突然消失 所以要写wx.onVoiceRecor ...

  4. PowerBuilder学习笔记之1开发环境

    Powerbuilder Classic 12.5开发环境(PB经典 12.5) 教材链接:https://wenku.baidu.com/view/5e087d6ab9f67c1cfad6195f3 ...

  5. Remote System Explorer Operation总是运行后台服务,卡死eclipse解决办法

    当你右键编辑控件的id或者其他属性时都会卡很久,发现原来是eclipse后台进程在远程操作,就是右下角显示的“Remote System Explorer Operation”.折腾了半天,在Stac ...

  6. K8S学习笔记之使用Fluent-bit将容器标准输入和输出的日志发送到Kafka

    0x00 概述 K8S内部署微服务后,对应的日志方案是不落地方案,即微服务的日志不挂在到本地数据卷,所有的微服务日志都采用标准输入和输出的方式(stdin/stdout/stderr)存放到管道内,容 ...

  7. spring cloud gateway 深入了解 - Predicate

    文章来源 spring cloud gateway 通过谓词(Predicate)来匹配来自用户的请求 为了方便,使用postman测试不同的谓词的效果 路径谓词(Predicate)—— 最简单的谓 ...

  8. 为什么要用 redis 而不用 map 做缓存?

    缓存分为本地缓存和分布式缓存.以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着 jvm 的销毁而结束,并且在多实例的情况下,每个实例 ...

  9. 解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题

    解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring S ...

  10. [摘录]flutter打包后无法访问接口

    打开文件{{flutterPorject}}\android\app\src\main\AndroidManifest.xml这个文件增加权限信息: <uses-permission andro ...