数据类型
int
str
bool
list
uptul
dict
set
可变的,也就是不可哈希的数据类型
int bool uptul

可变数据类型 也就是可哈希的
list 增append insret extend 删 del clear remove pop
dict
set

type(类型)
input获取到的都是字符串

有下标的
dict uptal str

数据类型的操作
字符串是不可变数据类型 str str.replace(久,新)str.caplzic()首字大写 str.upper()全都大写 str.lower()全部小写 str.starswith('元素')以什么开头 str.endswith('元素')以什么结尾 len(str) str.count(所查的元素)
str.strip()默认删除前后的空格,和换行符 str.split(分割元素) 可以把字符串变为列表 '一扇门隔开'.join(list)把列表变为字符串 str.find (元素)str.index(元素)通过元素找下标

list 增删改查
lst = []
lst.append(元素) 直接追加 lst.instre('下标','元素') 按下标插入元素 lst.extend('可迭代的对象') 迭代添加 (整型和布尔值不能迭代).迭代添加到列表里边


lst.pop(下标) 按下标删除默认删除最后一个 del lst 删除列表 del lst[下标] 可下标删除 可切片删除 lst.remove('元素')按元素删除 lst.clear()清空列表


lst[]='元素' 下标改和切片改 直接改 不用去接 不能用replice替换


for 循环查找 按下标查找

其它操作 len(lst) 查长度 lst.count()查元素的个数 lst.index(元素)查元素下标 数字型的列表 lst=[1,2,34,5,6] sort 升序 sort(reverse=true) 降序 lst.reverse()直倒叙
lst=[1,2,35,56,21]
lst.sort()
print(lst) ---[1, 2, 21, 35, 56]
lst=[1,2,35,56,21]
lst.sort(reverse=(True))
print(lst)-----[56, 35, 21, 2, 1]
uptal 元组 操作 uptal=()
元组不可以增删,不可变的数据类型 唯一的操作 就是可以查看for循环去查 按下标查看 里边的元素没要求

dict 字典
dic={}

dic[]=元素 有就替换没有就添加 dic.setdefault('键',值) 有就不做操作 ,没有就添加
dict.update()


dic.pop(键) 按键删除 默认删除最后一个 del dic 删除字典 del dic[键]可以按键删除 dic.clear)() 清空字典


dic[键]=值 按键去改 没有就是添加
dic2.update(dic1)
更新 被更新的内容如果在 要更新的内容中那值就会被覆盖
两个字典中,都没有一样的就是合并
print(dic2)


dic.get(键,值) 有就不做操作,输出有的值 ,没有的话就返回None 同样的 可以把返回你定义的值作为键值对放在字典中
可以for循环去查
字典中:get和setdefault的 区别 字典里有键时,都不操作.没有的话,get返回一值而已不会添加,setdefault没有的话,就会添加

# print(dic2.keys()) # 高仿列表 dict_keys(['33', '66']) 不能使用下标
# print(dic2.values()) # 高仿列表 dict_values(['gg', 'pp']) 不能使用下标

# keys() # 获取所有的键 高仿列表
#
# values() # 获取所有的值 高仿列表
#
# item() # 获取键值 以元祖的形式显示

集合
set()
集合可以天然去重 {} 集合里的数据类型 必须是不可变的 ,内容要求不可变数据
没有下标

set.add()
set.update
删 clear pop remove
改 先删后增
查 可以for循环
集合 set se = {1,2,3} 天然去重 内容要求不可变数据
# 增:
# se.add('内容')
# se.update('可迭代对象')

# 改:
# 集合就是先删后增

# 查:
# for 循环
文件操作

r w a
r 只读 open('文件',mode='r',encoding='编码集')
如:f=open('a1.txt',mode='r',encoding='utf-8')
f.reade()
f.close
w 值写
f=open('a1.txt',mode='w',encoding='utf-8')
f.write()
f.close
w 模式下先清空文件里的内容是读不到的
a 直接在后边写
f= open('a1.txt',mode='a',encoding='utf-8')
f.write()
f.close
r+ w+ a+
r+ 先读后写
with open('文件',r+,encoding='utf-8') as f:
f.reade()
f.write()
w+ 先写后读
with open('文件',w+,encoding='utf-8') as f:
f.write()
f.reade()
a+ 写 du
with open('文件',a+,encoding='utf-8') as f:
f.write()

a+ 追加写 读
# 写读的时候是读不到内容的,除非移动光标
f = open('t2',mode='a+',encoding='utf-8')
f.seek(0)
print(f.read())
f.write('哈哈哈')
seek()移动光标 tell() 查看光标
# 最常用: r,w,a,r+,a+
with 模式下 是不用close 关闭的

非文子读取 f = open('QQ.jpg',mode='rb')
print(f.read())

# 推荐写法 相对路径

函数的初识
函数所谓的函数就是就是把代码块打包来用的
格式def 函数名():
函数体
函数名() 调用函数
函数的返回值
不写return返回的是一个None
写了return不给值 返回也是None
return 可以返回随意数据 多个元素返回的都是元祖
return 可以终止这个函数
return值返回给了调用者

参数 :
函数的参数:
形参: 定义的时候 形参位置括号内局部的
位置参数
默认参数
混合参数
实参: 调用的时候 实参是括号内的全局
位置参数
关键字参数
混合参数
动态参数 有俩 动态位置参数 动态默认参数
**kwargs 定义的时候是聚合
*kwargs 使用的时候 打散字典的键

形参排序: 位置参数 > 动态位置参数 >默认参数>动态默认位置参数

函数的空间名称: 内置空间 全局空间 局部空间
取值:局部空间>全局空间>内置空间
加载顺序:内置空间>全局空间>局部

global 在局部修改全局的数据,如果全局没有的时候,在局部修改的时候回创建一个
nonlocal 在局部里,修改离它最近的上一级,上一级不存在就继续往上找
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字
函数名:
函数名可以 当做值 去赋值给变量
函数名可以 当做参数传递给函数
函数名可以 当做函数返回值,注意:返回值不能加括号 接力的要一层一层往下传,中间断了就接不到了
函数名可以 当做元素存放一个容器里
  查看函数的内存地址 print(函数名)

闭包:
嵌套函数;
简单的说就是 f1下函数f2 用的变量是f1的值并且return f2
嵌套函数,内部函数使用外部变量(非全局变量)就是闭包
好处,
保护这个变量不被外界修改
生命周期延长
节省开辟空间和销毁空间的时间差,提高效率

迭代器:可以循环查看 满足for 循环的 __inter__ 和__next__
迭代对象 __inter__ 或者可以被for循环的就是可迭代对象
可迭代对象
list
dict
set
tuple
str
不可迭代:int bool
除了int bool 其它 str list set uptal dict 都可以迭代
生成器也是一个迭代器:
yield
def func():
print()
a=yield k
print()
yield h
g=func()-----这就是一个生成器
print(g.__next__())-----启动生成器 一个next 对应一个yield
print(g.senk(内容) -----启动生成器+给上一个yield等号左边一个值

推导式 :
生成器推导式 g=(i for in in range(8))
列表生成器:list=[i for i in range(8)]
集合推导式:set={i fo i in range(8)} set={i for i in dict.items()} for 循环的字典的键值,就是里边是元组的(键,值),外边是大括号
字典生成器:dic={dic[k]:k for k in dic} 出现俩列表时为:lst1=[1,2,3,4] lst2=['a','b' ,'c','d'] dic={lst1[i]:lst2[i] for i in range(len(lst1))}
dic = {'1':2,'2':3}
print({k:v for k,v in dic.items()})

转载于:https://www.cnblogs.com/LMTlmt/p/10264058.html

数据类型 --生成器相关推荐

  1. python中append函数合并列表且列表内数字从高到低_35个高级Python知识点总结

    No.1 一切皆对象 众所周知,Java中强调"一切皆对象",但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function) ...

  2. [转]35个高级Python知识点总结

    No.1 一切皆对象 众所周知,Java中强调"一切皆对象",但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function) ...

  3. 22个高级Python知识点总结,干货!

    No.1 一切皆对象 众所周知,Java中强调"一切皆对象",但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function) ...

  4. python重要知识点_35个高级Python知识点总结

    No.1 一切皆对象 众所周知,Java中强调"一切皆对象",但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function) ...

  5. Python组合数据类型:容器类型总览,(不)可变数据类型immutable、(不)可迭代对象iterable、迭代器iterator、生成器generator、语法糖

    一.组合数据类型container objects 组合数据类型container objects:能够表示多个数据的类型 集合类型:集合类型是一个元素集合,元素无序不重不变 序列类型:序列类型是一个 ...

  6. ES6 rest参数,扩展运算符,Symbol数据类型,迭代器和生成器 【详解加案例 】(二)

    文章目录 1.ES6 rest 参数 2. ES6 扩展运算符 2.1 ES6 简介 2.2 应用 3. ES6 Symbol 数据类型 3.1 Symbol两种创建方式 3.2 Symbol注意事项 ...

  7. 【Python百日刷题计划】Day4~各种数据类型用法以及函数和生成器使用

    目录

  8. 完全理解Python迭代对象、迭代器、生成器

    本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文的中译版本,推荐阅读原文,谢谢网 ...

  9. pythonfor循环遍历list_为什么for循环可以遍历list:Python中迭代器与生成器

    1 引言 只要你学了Python语言,就不会不知道for循环,也肯定用for循环来遍历一个列表(list),那为什么for循环可以遍历list,而不能遍历int类型对象呢?怎么让一个自定义的对象可遍历 ...

  10. Python基础14-迭代器与生成器

    目录 迭代器 官方文档对迭代器的解释 迭代器协议 基于迭代器协议的统一的for循环机制 生成器 官方文档对生成器的解释 生成器函数 生成器表达式 生成器用法举例 利用生成器用单线程实现生产者消费者问题 ...

最新文章

  1. 学Python,这些内置数据类型总结(数字类型)你可否知道
  2. socket不能bind请求的地址_socket通信原理
  3. java数据结构之二叉树的定义和递归实现
  4. python常用知识点总结-Python常用知识点汇总
  5. 两个有序数组合成一个有序数组
  6. Splunk高管:中国才有真正意义的大数据
  7. JavaWeb(四)——在IDEA中配置Tomcat、pom文件
  8. 抓包写代码模拟怎么减少重复劳动
  9. matlab可以使用词云分析吗,利用豆瓣短评数据生成词云
  10. Linq找不到行或行已更改
  11. 记事本安卓软件代码设计_用轻量级工具 Notepad3 替代 36 岁的微软记事本
  12. linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN
  13. 如何在Ubuntu 16.04上使用MySQL 5.6配置Galera集群
  14. postgresql常用函数及操作符及类型转换
  15. Java for 语句简化写法_Java 8 Lambda 写法与简化
  16. SoapUI接口测试工具测试webservice
  17. 计算机桌面ie图标无法删除,Win7桌面IE图标无法删除如何解决?
  18. 树莓派做网络代理_【树莓派】设置代理服务器联网
  19. 苹果登录skype显示无法连接服务器,无法连接appstore服务器 无法连接appstore服务器怎么办呢...
  20. 自制合成孔径雷达(3) doppler代码解读

热门文章

  1. @EnableWebMvc引发的swagger-ui.html的灾难
  2. RocketMQ(六)多Master多Slave模式-异步复制集群搭建
  3. MyCat之全局表和ER表
  4. Android开发之实现多次点击事件
  5. linux USR1亦通常被用来告知应用程序重载配置文件
  6. 美国将采纳TMF智慧城市成熟度模型
  7. JavaScript面向对象---原型链继承
  8. Centos7 安装编译nbd模块步骤
  9. php基础:变量命名、传值、检测、类型转换、动态变量名
  10. dubbo实现两个系统之间的通信