Python(基础)第三天
来源:互联网 发布:4.5mm铅弹可淘宝 编辑:程序博客网 时间:2024/06/05 09:57
数据结构:
Python中有四种内置的数据结构:列表(List)[ ]、元组(Tuple)( )、字典(Dictionary){ }和集合(set)
列表(List)
一种用于保存一系列有序项目的集合,利用列表来保存一串项目的序列。项目的列表应该用方括号括起来,这样Python才能更理解你在指定一张列表。你可以添加、移除或者搜索列表中的项目。既然我们可以添加或者删除项目,我们会说列表是一种可变的(mutable)数据类型。
Object(对象) 与 Class(类)
列表是使用对象与类的实例。当我们启用一个变量i并将整数赋值给它时,你可以认为这是在创建一个int类(即类型)之下的对象(即实例)i。
一个类也可以带有方法,当拥有一个该类的对象时,可以使用这些功能,譬如mylist.append(‘an item’)和其他面向对象语言一样通过使用点号来访问对象的方法。
一个类也可以具有字段(Field),它是只为该定义且只为该类所用的变量。只有当你拥有一个属于该类的对象时,才能够使用这些变量和名称。字段也可以通过点号来访问 mylist.field
总结 访问类的方法和类的字段都是可以用该类对象通过加点号的方法来用。
列表可以直接打印sort方法是可以按首字母排序。
shoplist=[‘apple’,’banana’,’rice’] 定义和存储都是这样的。
调用print函数时我们使用end 参数,这样就能通过一个空格结束输出工作,而不是通常的换行。
再一次强调一下:列表是可变的,而字符串是不可变的。
元组(Tuple)
用于将多个对象保存到一起,元组是不可变的,也就是说不能编辑或更改元组。这通常意味着保证某一语句或者某一用户定义的函数可以安全采用一组数值。
元组是通过特别项目来定义的 在指定项目时,你可以给它们加上括号(括号是一个可选选项,但强烈建议使用括号()),并在括号内部用逗号进行分隔。
一个空元组由一对圆括号构成,就像myempty=( )这样,然而一个只拥有一个项目的元组并没这么简单,你必须在第一个(也是唯一一个)项目的后面加上一个逗号来指定它,如此一来Python才可识别这个表达式想表达的究竟是一个元组还是只是一个被括号所环绕的对象。
譬如singleton=(2,)
字典(Dictionary):
就像一个本地址簿。通过键值(Keys)与值(Values)联立到一起。Key值必须是唯一的。而且你必须只能使用不可变的对象(如字符串)作为字典的键值,Values则可以用可变的或不可变的对象。
字典中通过符号构成 d={ key:value1 , key:value2 }这样的形式,来制定键值和值。key和value通过冒号分隔,而每一对key与value则使用逗号分隔。全部都由一对花括号括起来。
另外,字典中的成对的键值——值配对不会以任何的方式进行排序,如果你希望它们安排一个特别的次序,只能在使用它们之前自行进行排序。
使用字典是属于dict类下的实例或对象。
可以使用del语句来删除某一键值——值配对。
可以使用字典的item方法来访问字典中每一对键值——值配对信息。这一操作将返回一份包含元组的列表。
如果想增加新的键值——值配对,可以通过索引运算符访问一个键值并为其分配与之相应的值。
可以使用in运算符来检查某一对键值——值配对是否存在。
序列:
列表和元组及字符串可以看作序列的某种表现形式。
序列的主要功能就是资格测试(Membership Test)(也就是in与not in表达式)和索引操作(Indexing Operation),它们能够允许我们直接获取序列中的特定项目
序列的三种形态:列表,元组,字符串。拥有一种切片(Slicing)运算符它能够允许我们序列中的某段切片-也就是序列中的一部分。
假设shoplist序列(列表)则从shoplist[0]开始计数,0是索引,但索引也可以使用负数,使用负数的情况下,位置计数将从队列的末尾开始,因此shoplist[-1]指的是序列的最后一个项目。shoplist[-2]将获取序列中倒数第二个项目。
shoplist[start:end]
在切片操作中,第一个数字(冒号前面的那位,如果没有指定则从序列其实处开始操作)指的是切片开始的位置,第二个数字(冒号后面的那位,如果没有指定则会在序列的末尾结束操作,返回最后一个值)指的是切片结束的位置。值得注意的是切片操作会返回start位置的值但不会返回end的值。
切片操作可以提供第三个参数,该参数被看作是切片的步长(Step)(在默认的情况下,步长大小为1)。
集合(Set)
是简单对象(不可修改)的无序集合(Collection)。当集合中的项目存在与否比起次序或其出现次数更加重要时,我们就会用集合。
通过使用集合可以测试某些对象的资格或情况,检查它们是否是其他集合的子集,找到两个集合的交集等等。
引用:
变量名只是指向你计算机内存中存储了相应对象的那一部分,这叫作名称绑定(Binding)给那一个对象。
必须记住的是,如果你希望创建一份诸如序列等复杂对象的副本(而非整数这种简单的对象),你必须使用切片操作来制作副本。如果你仅仅是讲一个变量名赋予给另一个名称,那么它们都将‘查阅’同一个对象了,对此可能会造成不必要的麻烦。
字符串:字符串有自己的方法,可以做到检查字符串中的一部分或是去掉空格等几乎一切事情!使用的所有字符串都是str类下的对象。
譬如有startswith(”)用于查找字符串是否给定的字符串内容开头
in运算符用以检查给定的字符串是否是查询的字符串中的一部分
find(”)等方法用于定位字符串给定的字符串位置如果找不到相应的子字符串,find会返回-1.
str类同样还拥有一个简洁的方法用以联结(Join)序列中的项目,其中字符串将会为每一项目之间的分隔符,并以此生成并返回一串更大的字符串。
- Python(基础)第三天
- python基础第三天
- PHP基础加强(第三天)
- UI基础第三天(知识点)
- UI基础第三天(代码)
- 基础加强第三天
- Java基础----第三天
- Java基础第三天
- Android基础第三天
- Java 基础 第三天
- java基础第三天
- 基础学习第三天
- java基础第三天
- Android基础第三天
- C#基础第三天
- linux--基础第三天
- Python第三天。
- Python 学习第三天
- bigemap如何直接打开AutoCAD的DXF文件
- 浅谈angular的作用
- Nodejs——Eclipse中运行调试Nodejs
- 数据库中的事务,隔离级别
- win10 jdk安装
- Python(基础)第三天
- Android编程权威指南(第二版)— 第13章挑战练习-13.6
- 设计模式之策略模式
- 十种排序算法总结
- java 虚拟机系列文章5--垃圾收集器及GC参数
- 6.mybatis逆向工程
- 发送HTTP请求,HttpPost
- 3D 360度旋转app 重力感应 用户交互
- And_Android Studio取消与SVN的关联/找不到Share Project(Subversion)