在示例中,将 mystr 字符串按照空格进行了切分,返回的列表使用了 mylist 接收。 而后,使用空格作为分隔符将 mylist 列表中的元素以字符串表示的形式拼接成了个字符串 mystr_temp。
需要注意的是,如果不指定 split 的参数,其默认以空白字符分隔,比如空格、\t等,示例如下代码:
mystr = '哈 利 波 特 的 魔 法\n世\t界' mylist = mystr.split() print(mylist) # ['哈', '利', '波', '特', '的', '魔', '法', '世', '界']
3 切片
3.1 切片的概念与说明
🆔 简介:
切片 方法适用于 字符串、列表、元组;
切片 使用 索引值 来限定范围;
列表 和 元组 都是 有序 的集合,都能通过 索引值 获取对应的数据,因此可以使用切片;
为了方便使用,Python 提供了倒序索引,具体见下图:
📖 语法如下:
字符串名/列表名/元组名[开始索引:结束索引:步长] 1
🅰️ 注意点:
指定的区间属于左闭右开型;
如果是从头开始,则开始索引可以省略,冒号不能省略;
如果是到末尾结束,则结束索引可以省略,冒号不能省略;
步长可以省略,默认为1。
需要特别注意的是,如果倒序遍历,记得修改步长为负数
3.2 切片的使用——以字符串为例
str = '我是黄小黄同学' 1
🐱 1.截取从 2 ~ 5 位置的字符串,截取 2 ~ 末尾的字符串:
str = '我是黄小黄同学' print(str[2:6]) # 黄小黄同 print(str[2:]) # 黄小黄同学 1 2 3
🐱 2.截取完整的字符串
str = '我是黄小黄同学' print(str[:]) # 我是黄小黄同学 1 2
🐱 3.截取完整的字符串,每两个取一个(隔一个取一个)
str = '我是黄小黄同学' print(str[::2]) # 我黄黄学 1
🐱 4.截取字符串,不包含最后一个元素
str = '我是黄小黄同学' print(str[:-1]) # 我是黄小黄同 1 2
🐱 5.截取末尾两个字符
str = '我是黄小黄同学' print(str[-2:]) # 同学 1 2
🐱 6.利用切片求字符串的逆序
将步长设置为-1即可,列举两种方式
str = '我是黄小黄同学' print(str[::-1]) # 学同黄小黄是我 print(str[-1::-1]) # 学同黄小黄是我 1 2 3
以下为错误示范
str = '我是黄小黄同学' print(str[0::-1]) # 我
4 本文配套练习题*
4.1 练习一
假设有一段英文,其中有单词中间的字母i被误写为I,请编写程序进行纠正
⌨️ 代码示例:
思路见注释!!!
# 先接收一段英文 message = input("Please enter: ") # 先将接收的字符串进行判断,所有的 I 改成 i message = message.replace('I', 'i') # 对英文句子的首字母大写 message = message.capitalize() # 输出修改后的结果 print(message)
🍑 结果:
4.2 练习二
有一段英文文本,其中有单词连续重复了两次,编写程序检查重复单词并只保留一个。例如,文本内容为“This is is a dask.”,程序输出为“This is a desk.”。
⌨️ 代码示例:
思路见注释!!!
# 先接收一个句子,以空格为分隔符转成列表接收 message = input('Please enter a sentence: ').split(' ') result = '' # 接收结果 # 先加入第一个单词 result += message[0] # 逐个判断单词是否重复,重复则不添加到结果result for item in range(1, len(message)): if message[item] == message[item-1]: continue else: result += ' ' + message[item] # 输出结果 print(result)
🍑 结果: