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)序列中的项目,其中字符串将会为每一项目之间的分隔符,并以此生成并返回一串更大的字符串。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 户口迁移换驾照怎么办 户口迁了身份证怎么办 户口迁移了医保怎么办 房屋卖了户口怎么办 驾照过期注销了怎么办 负全责不赔偿怎么办 青岛驾驶证过期了怎么办 驾驶证过了年检怎么办 驾驶证审证逾期怎么办 d驾驶证3年没捡怎么办 c1驾驶证3年没审怎么办 驾驶证换证外地怎么办 考驾驶证快到期怎么办 驾照到期人在国外怎么办 驾驶证3年没审怎么办c3 驾驶证几年没审怎么办 驾照体检过期了怎么办 b2驾照超过年检怎么办 驾驶证过审一年怎么办 驾照一年未年审怎么办 b驾照年审过期怎么办 摩托车驾驶证过期一年怎么办 驾驶证过期一年半怎么办 驾照过期了几天怎么办 驾照过期超过一年怎么办 考试驾照过期了怎么办 驾校考试过期了怎么办 驾驶证明过期了怎么办 驾驶证年过期了怎么办 驾照过期六个月怎么办 移动预约号码取消怎么办 身份证换地址驾驶证怎么办 刚来成都怎么办居住证 我在外地怎么办身份证 身份证丢在外地怎么办 换领新身份证时旧证丢了怎么办 二代身份证重号怎么办 北京行驶证到期怎么办 北京驾驶证即将过期怎么办 去澳门没有网络怎么办 三个周期未年检怎么办