python字典和集合对象可以进行索引操作_学习python第四课:字符串和散列类型(字典dict、集合set)...

(一)字符串。任何放在一对单引号或双引号中的内容都被当成字符串。

※第一课时有介绍定义字符串的三种方式,四种格式化字符串的方法,当然format格式化也可利用。

一、字符串的增删改查。

字符串也有顺序,因此可以索引取值,但不可以更改,是不可变对象。

列表、元组、字符串:序列1.索引 值  S[index]S为序列名  中括号>>> str_a = "this is python"

>>> str_a[1]  →返回 'h'  #注意索引位置放在方括号内

2.字符串的查找find

与index一样返回字符串的位置,但如果没找到或超出范围不会报错,而是返回-1

可使用列表的查询位置 S.index(value)方法,但查找的对象不在范围内时会报错。>>> str_a.find('p')  →返回 8.  #

>>> str_a.find("p",3) →返回 8。表示从第4个位置开始查找p

>>> str_a.find("p",10) →返回 -1。

>>> str_a.index('is')  →返回 2。表示从第3个字母起

>>> str_a.index("p") →返回 8。表示从第9个字母起

在程序运行时,一旦有报错就要进行处理,否则程序不会往后运行。而find不在范围内时返回-1,不会报错,这样不会影响程序的运行,显得更人性化些。

3.查看长度 len(S)>>> len(str_a)  →返回14。包括空格在内长度为14

4.替换replace

字符串不可修改,因此不能直接如列表那样赋值修改。

S.replace("a","b'),一次只能替换一个字符串。>>> str_a[3] = "re"→返回报错信息,提示字符串不支持赋值。

4-1.转换表translate

只能对单字符进行替换,但可同时替换多个字符。

5.字符串的分割split

S.split(分割符,次数)切割之后的元素会放在一个列表当中。切割的次数,默认是-1,即不做限制

常与join连用,将列表中的字符串用*连接。想加密时可以使用这种方法

>>> '*'.join(str_a.split('i',2)) →返回'th*s *s python'

6.大写upper

或小写lower>>> str_a.upper()  →返回 'THIS IS PYTHON'

>>> 'This is pyThon'.lower() →返回'this is python'

str_a.upper().lower()这种语法是可以的,先全部变大写再变小写

7.首字母变大写capitalize()>>> str_a.capitalize()→返回'This is python'

9.字符串居中S.center(长度,补充符号)>>> str_a.center(28,"*")  →返回'*******this is python*******'#表示字符串长度28并将str_a居中,以*补充。

10. count

11.字符串查找的其他一些用法,判断字符串是否满足特定的条件。

>>> 'ab8#TH2!'.isalpha()  →返回False。判断是否全是字母

>>> '12345'.isdigit() →返回  True 。判断是否全是数字。这个运用比较多

>>> 'aBc'.islower()→返回False。 判断字母是否全是小写

>>> "ABC".isupper()→返回True 。判断字母是否全是大写

【查看对象的所有方法】dir

注:字符串的其他用法(可另外参见老师提供的《字符串方法》)

二、字符串的转义:反斜杠 \   + 字母 ,  往往代表一些计算机中不太好展示出来的字符

1.\n 换行符(转义)  如:print("python\n nice")

2.\t 制表符(tab键)

3. \b 退格键,把后面的向前挪一个位置

4. \\ 取消转义。打印结果\       如print('c:\\nowhere') →返回c:\nowhere

5. \a 系统提示音

6.  r   不以特殊方式处理反斜杠,输出原始字符串,但原始字符串不能以单个反斜杠结尾。但有时需要输出以反斜杠结尾的字符串(如路径名等),此时可将反斜杠单独作为一个字符串,如:

print(r'c:\program files\foo\bar' "\\") → 结果为c:\program files\foo\bar\

三、字符串的编码encode():Unicode、ASCⅡ编码、UTF-8/UTF-16

字符串中自带了encode方法,可以讲字符串编码成指定的编码

可见gbk编码更节省存储空间

也可以用decode转回去

(二)   字典dict

【扩展】映射mapping是一种可能过名称来访问其各个值的数据结构。字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存在键key下。键可能是数、字符串或元组。

一、【字典的定义】由键key及其相应的值value组成,这种键-值对称为项(item)。每个键与其值间都用冒号(:)分隔,项之间用逗号分隔,而整个字典放在花括号{}内。

如:phonebook = {"小姜": '7100', '靖宇': '3475', 'landy': '1234'}  这是常规定义方法

定义字典有如下两种方法

【注】字典不是序列类型,没有索引取值,也没有顺序。但在字典中,键是独一无二的,可以通过key来取值。

二、基本的字典操作——增删改查

1.查询。字典不是序列类型,没有索引取值,也没有顺序。但在字典中,键是独一无二的, ①可以通过key来取值。

②get访问方法如果查询的键值不在字典内,则会报错。但通过get方法访问不存在的键时,则不会报错,而是返回None,也可指定返回值。

2、setdefault方法。特点:有则取,无则加。有点类似get,但get不会更新字典

3、update方法。特点:有则改,无则加。使用一个字典中的项来更新另一个字典。

4、直接添加。如:

>>> phonebook['elle'] = 9876    可以用赋值的方式直接将键值对'elle':9876添加到字典中。

5、提取字典的键key、值value及项目item可用list对提取的键转换成列表

6.字典的删除。pop方法,从字典中删除指定键对应的键值对。而popitem随机删除键值对

【扩展】映射mapping是一种可能过名称来访问其各个值的数据结构。字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存在键key下。键可能是数、字符串或元组。(三) 集合

一、集合的定义:可使用序列(或其他可可迭代对象)来创建集合,放在大括号内。与字典不同的是,不是键值对形式,相同之处也是无序的,也属于hash哈希类型。且集合每一个值是唯一的(这点与字典的key一样)

建立集合set

1、直接定义:如set_a = {1, 2, 3,  'a', 'b', 'c'}集合中的元素是无序且唯一的

2、空集合的定义为 set()

区别于空列表[ ]、空元组()、空字符串“ ”、空字典{}

二、集合的作用/运算

集合的交集&、并集|、差集-(减号)。与学校所学知识一样。

三、集合的增删改查集合也有增加、更新、移除等基本操作(用得不是特别多)

四、集合的判断  (了解即可)

(四) 运算符总结

运算符优先级​运算符描述

**幂运算

+、-一元运算符(正负号)

*、/、%算术运算符(乘、除、取余)

+、-(加减)

、<=、>=比较运算符

==、!=等于、不等于

=、%=、/=、-=、+=、*=、**=赋值运算符

is、is not身份运算符,判断是否是同一个对象

in、not in成员运算符

not > and > or逻辑运算符

【小结】可变对象:列表list、字典dict、集合set

不可变对象:数值(整数int,浮点型和布尔型)、字符串str、元组

day04 作业:

1.找出两个列表中相同元素,并打印出来

2.统计一串字符中,每个字母 a~z的出现频率,忽略大小写

3.利用26个字母和10个数字,随机生成10个8位密码

4.判断用户输入的是不是一个手机号码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值