元组:

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

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. QuantLib 金融计算——基本组件之 ExchangeRate 类

    目录 QuantLib 金融计算--基本组件之 ExchangeRate 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件 ...

  2. 网关/负载均衡下的consul集群代理

    之前有做过使用单机版的consul实现Prometheus服务注册,以为使用集群版的consul只是将consul服务地址从节点IP变为了网关IP.但比较坑的就是,当使用consul注册一个servi ...

  3. 发现一个企业微信第三方应用开发的疑似BUG

    1.企业微信两个账号A(超级管理员),账号B(分级管理员),账号B具有创建应用与小程序权限.2.账号B添加一个第三方应用后(创建后能看到第三方应用),使用下图接口登录时回调的agent一直为空,3.超 ...

  4. 8. Scala面向对象编程(高级部分)

    8.1 静态属性和静态方法 8.1.1 静态属性-提出问题 有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决 8.1.2 基本介绍 -Sca ...

  5. springboot yml配置文件注入值

    1.编写javabean: package com.example.springboot.bean; import org.springframework.boot.context.propertie ...

  6. Python批量更改文件名

    一.问题在处理文件或者一些其他信息的时候我们需要更改文件名,那么我们可以写一个程序来修改这些文件名,以减少我们重复的做一件事. 二.解决本次使用的Python,利用的是Python中的OS模块,具体操 ...

  7. 修改host文件加速访问github

    修改本地电脑系统 hosts 文件C:\Windows\System32\drivers\etc,直接在最后加入以下代码 192.30.253.112 github.com 192.30.253.11 ...

  8. English--定语从句

    English|定语从句 从介绍从句开始,英语的句子已经开始逐渐复杂了!做好心理准备,三大从句介绍完毕,会介绍分词短语.废话不多说,直接开始干! 前言 目前所有的文章思想格式都是:知识+情感. 知识: ...

  9. 2017-07-26 ThinkPHP简单使用

    ThinkPHP是什么?有何优点? ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架,ThinkPHP为WEB应用开发提供了强有力的支持,这些支持包括: * MVC支持 ...

  10. android shap画圆(空心圆、实心圆)

    实心圆: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=" ...