Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python基础类型(一):字符串和列表

python基础类型(一):字符串和列表

作者头像
渔父歌
发布于 2018-11-29 10:11:43
发布于 2018-11-29 10:11:43
1.2K00
代码可运行
举报
文章被收录于专栏:数据结构笔记数据结构笔记
运行总次数:0
代码可运行

一、字符串

与 C语言相比,Python没有字符类型,只有字符串类型。

Python中的字符串是用双引号或单引号包裹的一串字符。如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'a'
s = 'aaa'
s = "a"
s = "aaa"
s = '"""'
s = "'''"
s = "''"''"

注意到最后三个的单双引号是嵌套使用的,但是最后一个的使用方法是错误的,因为当我们混合使用两种引号时必须有一种用来划分字符串的边界,即在两边的引号不能出现在字符串当中,否则 Python解释器会报错。

1. 截取字符串

其他的语言中一般将截取字符串定义为一个方法,比如 C语言中的 substr方法就可以返回字符串指定位置之间的一个字串。

但是在 Python中我们采用一种更简洁直观的方式,看如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = "i_am_a_sher."

print('s is:', s)
print('s[0]: ', s[0])
print('s[1:]: ', s[1:])
print('s[1:3]: ', s[1:3])
print('s[1::2]: ', s[1::2])
print('s[-1]: ', s[-1])
print('s[-3:-1]: ', s[-3:-1])
print('s[-3::2]: ', s[-3::2])

'''
s is: i_am_a_sher.
s[0]:  i
s[1:]:  _am_a_sher.
s[1:3]:  _a
s[1::2]:  _mase.
s[-1]:  .
s[-3:-1]:  er
s[-3::2]:  e.
'''

在 Python中字符串被视为一个可迭代的对象,可迭代指实现了 iter接口,可以直接使用for t in object语法的对象,简单来讲可以把字符串看作一个存储字符的数组。

所以当我们打印s[0]时会将字符串的第一个字母打印出来。

Python还为字符串切片提供了非常便利的操作,比如:

s[1:]表示 s中第二个及以后的所有字符。

s[1:3]表示 s中第二个到到第四个字符之间的所有字符(包括前者但不包括后者,即包括第二个但不包括第四个)。

s[1::2]表示从 s中第二个字符开始取,每移动两个字符取一个,所以我们取到的结果是第 2、4、6、8、10个字符。

当给出的数字为负数时,表示从字符串的末尾开始计数,所以s[-1]表示字符串倒数第一个字符。

这里使用 -1表示倒数第一个字符,0表示正数第一个字符(因为没有 -0)。

::后面的数字为正时表示从左到右计数,为负数时表示从右到左计数。

2. 拼接字符串

拼接字符串我们直接使用+,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s_1 = 'aaa'
s_2 = 'bbb'
print('s_1 + s_2:', s_1+s_2)
"""
s_1 + s_2: aaabbb
"""
3.字符串的常用方法
  1. encode(str: codec)->bytes:接受一个编码字符串作为参数,返回编码后的二进制编码, 如:s.encode('utf-8')
  2. split(str: spl)->list:一给定的字符串 spl将原字符串分割为多个字串,并返回一个字串列表 如:s.split('_'),结果为:['i', 'am', 'a', 'sher']
  3. strip():去除字符串两端的空字符(包括换行、空格、制表符等其他不可见的符号),lstrip()rstrip()则分别去除字符串左边和右边的空字符。
  4. replace(str: old, str: new)->str:替换字符串中的某些字串,要替换的字串通过 old给出,用来替换的字串通过 new给出,如:s.replace('a', 'b')的结果为:i_bm_b_sher.
  5. join(list: l)->str:用原字符串将给定的列表拼接成一个字符串。 如:'_'.join(['i', 'am', 'a', 'sher.'])的结果就是i_am_a_sher..

二、列表

Python中的列表和数组类似,不过与数组只能存储一种元素相比,一个列表中可以存储任意元素,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
l = ['a', 1, ['a']]

在列表 l中我们存储了三种数据类型,分别是字符串、整数和列表

与数组相同的是,我们可以使用下表来访问列表中的元素,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
l[0]   # 'a'
l[1]   # 1
l[2]   # ['a']
l[3]   # IndexError

同样,如果访问了一个不存在的下标,程序就会抛出 IndexError错误。

1. 截取列表

截取列表的操作和截取字符串的操作完全相同,可以参考截取字符串。

2. 合并列表

合并列表可以像拼接字符串一样使用+将两个列表合并,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
l_1 = [1,2,3,4]
l_2 = [5,6,7,8]
l_3 = l_1 + l_2
# l_3 = [1,2,3,4,5,6,7,8]

也可以使用 extend(list: l)方法将要合并的列表直接追加到原来的列表后面。

注意:extend()方法没有返回值,这个方法直接在原来的列表上进行操作。

3. 列表的常用方法
  1. append(any: element):向列表尾部添加一个元素
  2. insert(any: element, int: index):向列表中特定的位置插入一个元素,原来在那个位置的元素及其后面的所有元素均向后移动一个位置。
  3. index(any: element)->int:返回所给元素在列表中从左到右第一个匹配的元素的位置,若所给元素不在列表中则抛出 ValueError错误。
  4. remove(any: value):将从左到右第一个匹配的元素从列表中移除,如果所给值不在列表中则抛出 ValueError错误。
  5. sort():将列表中的元素进行排序,直接在原列表中进行操作,没有返回值。
  6. pop():从列表的右边取出一个元素,并将该元素从列表中移除。
  7. reverse():反转列表,如: l = [1,2,3,4,5] l.reverse() # l = [5,4,3,2,1]
  8. 关键字 in的使用:可以用关键字 in来判断一个元素是否在列表中,如: l = [1,2,3,4,5] 1 in l # True 6 in l # False #可以使用 in和 index()配合来获取元素在列表中的位置 def indexOf(l, element): if element in l: index = l.index(element) else: index = -1 return index #可以使用 in和 remove()将元素从列表中移除 def remove(l, element): if element in l: l.remove(element) else: pass
  9. for遍历列表, 如: l = [1,2,3,4,5,6,7,8] # 如果要将 l中的元素逐个打印出来,其他的方法是: for i in range(len(l)): print(l[i]) # 但是在 python中不需要这么麻烦 for t in l: print(l)

三、练习

1. 日期格式转换

有多种日期格式:2018/10/28、2018.10.28、20181028、2018-10-28

现在我们需要编写一个程序将前三种格式转换为第四种格式。

要求:

  1. 不能使用 python类库
  2. 将代码封装成一个函数:date_trans(str: date)->str接受一个字符串输入,输出第四种日期格式
  3. 需要处理不规范输入引起的错误,当遇到不规范输入时抛出 ValueError错误并给出提示
2. 双向队列

现有函数签名:b_pop(list: l, str: direction)

该函数实现的功能是:当 direction的值为 'left'时从列表的左边取出一个元素返回,当 direction的值为 'right'时从列表的右边取出一个元素返回,当列表为空时返回 None

要求:

  1. 在取出元素前后列表原有的元素排列方向不变
  2. 当 l和 direction的值非法时抛出 ValueError错误并给出提示
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.10.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python基本数据类型解读:字符串篇
我们都知道字符串是 Python 的基础数据类型。我们常用引号('或")来创建字符串,同时字符串在程序中是最常用的数据类型之一。
一个风轻云淡
2024/01/06
4700
[Python基础07]pass关键字&字符串详解及序列类型
在项目开发的过程中,某些情况下,我们定义了函数,但是对于函数中具体的代码临时没有确定,如:
周小董
2022/04/12
7540
17. 字符串详解及序列类型
字符串是我们在程序中使用非常多的一个对象,对于字符串的处理在各种编程语言中也是非常重要的一部分。
大牧莫邪
2018/08/27
5100
Python - 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
似小陈吖
2023/10/17
1740
Python - 字符串
Python字符串常用方法_007
str() 和 repr() 函数虽然都可以将数字转换成字符串,但它们之间是有区别的:
留给昨天、
2024/11/08
890
python 字符串
在 python变量 文章中我们对python变量做了一个简单的了解,整数/浮点数/bool值相对来讲都比较简单,今天详细在讲解一下关于字符串的内容,字符串俗称:str。
猿说编程[Python和C]
2020/02/24
4300
python 字符串
12.python 字符串
在 python变量 文章中我们对python变量做了一个简单的了解,整数/浮点数/bool值相对来讲都比较简单,今天详细在讲解一下关于字符串的内容,字符串俗称:str。
猿说编程[Python和C]
2020/03/12
2850
12.python 字符串
04Python基础之字符串Str
字符串这玩意吧,主要是给人看的。您想一下,如果是计算机的它肯定更喜欢处理数值型数据了,实质上,字符串最后也被拆成一个个的字符来处理的,而字符也是转化成ASCII码的数值来处理的。但,人是比较感性的动物,其实我们更喜欢听别人讲故事、而不是看别人给的一大串数字(个别天才除外)。
讲编程的高老师
2020/08/14
4120
day05-字符串
我们在上篇day04-数据类型中简单介绍了一下字符串,以及字符串的下标,今天我们来详细认识下字符串。
似小陈吖
2023/10/17
2390
day05-字符串
python字符串
full_name = first_name + " "  + last_name
用户7886150
2021/01/11
5980
Python字符串
(2)取字符串中的字符,如果从前往后取,第一个字符下标为0,逐一加一;如果从后往前取,最后一个下标是-1,往前逐一减一;
小雨coding
2020/07/09
9540
Python字符串
Python标准数据类型-String(字符串)
在Python程序中,字符串类型'str'是最常用的数据类型。 可以使用单引号'' 双引号"" 三引号''''''来创建字符串。(单引号,双引号创建的字符串只能在一行,三引号创建的字符串可以分布在多行) 创建字符串的方法很简单,只需要为变量分配一个值即可
hacker707
2023/05/03
6230
Python标准数据类型-String(字符串)
Python字符串(str)功能详细分析
#注意:在Python中,使用+。只能是字符串和字符串之间,和其他数据类型使用的话不支持,其他类型运算要求也是一样,都要求是相同的数据类型
用户7886150
2021/01/11
6310
Python编程思想(4):字符串类型
字符串的意思就是“一串字符”,也可以看做是字符的序列。比如“Helo, Mike”是一个字符串,“How are you?”也是一个字符串。Python要求字符串必须使用引号括起来,不过Python与
蒙娜丽宁
2020/05/19
9720
python数据类型-字符串
哈喽大家好!歪小王又来分享了,今天开始,我将以一种幽默有趣的方式,跟大家一起重温下python基础
歪小王
2024/04/22
1210
python数据类型-字符串
Python 字符串深度总结
今天我们来学习字符串数据类型相关知识,将讨论如何声明字符串数据类型,字符串数据类型与 ASCII 表的关系,字符串数据类型的属性,以及一些重要的字符串方法和操作,超级干货,不容错过!
周萝卜
2022/05/22
1.4K0
Python字符串
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。 在 Python 中,字符串格式化使用与 C语言 中 printf 函数一样的语法,如果只使用简单的用法,就可以当成printf 去用,代码示例:
端碗吹水
2020/09/23
9160
Python字符串
Python3 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
py3study
2020/01/03
7010
python字符串常用方法及汇总
很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程。实际上, 大多数程序员打交道最多的是“字符串”而不是“数字”。因为,编程是用来解决现实问题 的,因此逻辑思维的重要性远远超过数学能力。 字符串的本质是:字符序列。Python 的字符串是不可变的,我们无法对原字符串做任 何修改。但,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。 Python 不支持单字符类型,单字符也是作为一个字符串使用的。
全栈程序员站长
2022/09/06
7910
python字符串常用方法及汇总
python之字符串的基本使用
字符串 就是 一串字符,是编程语言中表示文本的数据类型在 Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串
用户7886150
2021/01/11
7360
相关推荐
Python基本数据类型解读:字符串篇
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验