Python知识笔记(+4):通俗理解列表(List)、元组(Tuple)和字符串(String)等概念

由于最近在刷Leetcode题,遇到了一些基本概念不是很理解的地方,所以需要补一下基本知识。因此,以下是本人查阅资料,自己总结的一些关于列表(List)、元组(Tuple)和字符串(String)的基本概念。

理解python中的序列(列表、元组和字符串)

1.1 基本概念

在python中常用到的数据结构一般为序列,我们在编程的时候几乎都会用到序列。序列中的每个元素都有编号,即索引,第一个元素的索引为0,以此类推,而用负索引来表示序列末尾元素的位置

序列主要包括:列表元组字符串等。(这三种最常见)

  • 1)基本格式如下:列表一般用[]、元组一般用()、字符串一般用" "来表示,注意它们表示方式的差别。
l = [1,2,3,4,5]   #列表
t =54321#元组
s = "Hello"  #字符串
  • 2)列表与元组、字符串的差别:列表可以修改,而元组和字符串不可以
  • 3)序列都可以使用索引、切片、相加、相乘和成员资格检查等操作。

1.1.1 索引(index)

给定一个序列,返回指定索引位置的元素。如下所示

l = [1,2,3,4,5]   #列表
t =54321#元组
s = "Hello"  #字符串
print(l[0],t[0],s[0])  #索引操作,输出它们的第一个元素
print(l[-1],t[-1],s[-1])  #索引操作,输出它们的倒数第一个元素

输出:

1 5 H
5 1 o

1.1.2 切片(slicing)

给定一个序列,可以用切片来访问指定范围的元素。并且用冒号隔开。(这部分在另一篇博文有详细介绍)

如下所示:

l = [1,2,3,4,5]   #列表
t =54321#元组
s = "Hello"  #字符串
print(l[13]) #切片操作,返回列表索引为1到索引为2的所有元素(不包括右端的索引3)
print(t[0:2])  #切片操作,返回元组索引为0到索引为1的所有元素
print(s[2:4])  ##切片操作,返回字符串索引为2到索引为3的所有元素

输出:

[2,3]
(5,4)
ll

1.1.3 相加

记住,序列的相加并不是数学意义上的加法,而是将它们进行拼接,并且相加只能对同一类型的序列进行相加。如下所示

l = [1,2,3,4,5]   #列表
t =54321#元组
s = "Hello"  #字符串
print(l+l) #相加操作,返回列表拼接本身后形成的新列表
print(t+t)  #相加操作,返回元组拼接本身后形成的新元组
print(s+s[2])  ##相加操作,返回字符串拼接指定元素后的新字符串

输出:

[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
(5, 4, 3, 2, 1, 5, 4, 3, 2, 1)
Hellol

1.1.4 相乘

与相加类似,都是拼接的意思。只是多次重复拼接这个序列,形成新序列。如下所示

l = [1,2,3,4,5]  #列表
t = (5,4,3,2,1)  #元组
s = "Hello"  #字符串
print(l*2)  #相乘操作,返回列表重复拼接2次后形成的新列表
print(t*2)  #相乘操作,返回元组重复拼接2次后形成的新元组
print(s*3)  #相乘操作,返回字符串重复拼接3次后形成的新字符串

输出:

[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
(5, 4, 3, 2, 1, 5, 4, 3, 2, 1)
HelloHelloHello

1.1.5 成员资格

检查特定的值或元素是否在序列中,通常需要进行成员资格审查。一般使用运算符in来判断满足特定的条件,满足时返回True,不满足时返回False。这种运算符也称为布尔运算符,返回的值称为布尔值。如下所示

l = [1,2,3,4,5]  #列表
t = (5,4,3,2,1)  #元组
s = "Hello"  #字符串
print('2' in l)  #资格检查操作,判断字符2是否在列表中,输出布尔值
print( 2 in l)  #资格检查操作,判断数字2是否在列表中,输出布尔值(注意与上面的区别)
print('2' in t)  #资格检查操作,判断字符2是否在元组中,输出布尔值
print('e' in s)  #资格检查操作,判断字符e是否在字符串中,输出布尔值

输出:

False
True
False
True

1.2 列表(List)的理解

列表是python中使用次数最频繁的一种序列,主要是可以实现修改、删除、切片等操作,上面有介绍。这部分重点说下列表的一些方法。

1.2.1 append

表示将一个对象附加在列表的末尾,表示格式为l.append()。例如

l = [1,2,3,4,5]
l.append(2)
print(l)

输出:[1,2,3,4,5,2]

1.2.2 clear

表示清空列表的所有内容,表示格式为l.clear()。例如

l = [1,2,3,4,5]
l.clear()
print(l)

输出:[]

与clear差别还有pop操作,即表示删除某一个元素。例如

l = [1,2,3,4,5]
l.pop(2)
print(l)

输出:[1,2,4,5]

1.2.3 copy

表示复制列表内容,格式为l.copy()。例如

l = [1,2,3,4,5]
a = l.copy()
print(a[1])

输出:2

1.2.4 count

表示指定元素在列表中出现的次数,格式为l.count()。例如

l = ['a','b','b','c','d']
print(l.count('b'))

输出:2

1.2.5 index

表示某个元素在列表中第一次出现的索引位置,格式为l.index()。例如

l = ['a','b','b','c','d']
print(l.index('c'))

输出:3

1.2.6 insert

表示将某一个对象插入列表指定的索引位置,格式为l.insert( *,*)。例如

l = ['a','b','b','c','d']
l.insert(2,'e')
print(l)

输出:['a','b','e','b','c','d']

1.2.7 reverse

表示将列表中的顺序进行翻转,即相反的顺序,格式为l.reverse()。例如

l = [1,2,3,4,5]
l.reverse()
print(l)

输出:[5,4,3,2,1]

1.2.8 sort或sorted

表示对列表中的元素就地排序,即从小到大,格式为l.sort()。例如

l = [32145]
l.sort()
print(l)

输出:[1,2,3,4,5]。注意与reverse的区别。

1.3 元组(tuple)的理解

元组与列表类似,只是表示的方法可操作性不同,即列表用[]而元组用()表示方法,列表可以修改而元组不可以修改

其他的基本操作与列表类似,这里不再赘述!

1.4 字符串(string)的理解

字符串是不可变的,其大致方法和列表差不多。由于太多,这里就记录下我目前了解的。

1.4.1 center

表示在字符串两边填充字符,且让字符串居中。例如

s = "hello"
print(s.center(10,'*'))  #两边填充'*‘号,且满足最后的总长度为10.

输出:**hello***.

1.4.2 find

表示查找字符串中对应的子串,若找到返回索引位置,否则返回-1

s = "hello world!"
print(s.find('o'))
print(s.find('z')

输出:4-1

1.4.3 join

表示合并序列的元素,且需要满足是字符串列表。

l = ['a','b','b','c','d']
x = '+'
print(x.join(l))

输出:a+e+b+c+d

1.4.4 split

与join方法正好相反,表示将字符串拆分为序列。

l = 'a+e+b+c+d'
x = '+'
print(x.join(l))

输出:['a','b','b','c','d']

1.4.5 lower

表示返回字符串的小写版本,格式为l.lower()。例如

s = "Hello World!"
print(s.lower())

输出:hello world!

猜你喜欢

转载自blog.csdn.net/A33280000f/article/details/121262242
今日推荐