Python 中的字符串、列表和元组

发布时间 2023-05-03 15:10:10作者: 196imcrown

字符串、列表和元组

String、  List 和 Tuple 是 Python 中 3 种不同的数据类型,但它们都属于 Sequence数据类型。

序列数据类型

序列(发音为 /x.co-u-en.xì/)是一种数据类型,由其中的一组(或集合)元素(成员)组成。

sequence_type_1 = ("one", "two", "three", "four", "five", "six", "seven")
sequence_type_2 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
sequence_type_3 = "Hello Python"

我们可以通过序列中的顺序(索引)访问元素的值:

# Phần tử đầu tiên
print(sequence_type_1[0]) # Hiển thị: one
# Phần tử thứ 2
print(sequence_type_1[1]) # Hiển thị: two
# Phần tử cuối cùng
print(sequence_type_1[6]) # Hiển thị: seven
print(sequence_type_1[-1]) # Hiển thị: seven

上面用来获取序列中元素值的一对方括号 [] 也称为 下标运算符

注意: 序列中的第一个元素编号为0,要访问最后一个元素,我们可以使用序列号-1。

从序列中的第 n 个元素到第 m 个元素:

print(sequence_type_1[0:2]) # Hiển thị: ('one', 'two')

统计序列中的元素个数我们使用函数 len() (函数我要再次提醒大家,函数的定义和使用会在后面的课程中介绍):

print(len(sequence_type_1)) # 7

使用循环 for..in 遍历序列中的每个元素(有关如何使用循环的详细信息将在以下课程中介绍):

# Lặp qua từng phần tử trong sequence_type_2 và hiển thị giá trị từng phần tử
for num in sequence_type_2:
    print(num / 10)
# Hiển thị: 1 2 3 4 5 6 7 8 9 10

要遍历每个元素并获取该元素的序号,我们结合使用 for..in 和函数 enumerate()

# Lặp qua từng phần tử trong sequence_type_1 và hiển thị số thứ tự cùng giá trị từng phần tử
for index, num in enumerate(sequence_type_1):
    print("Index:", index, "Value:", num)

运行上述代码时,Python 将显示以下输出:

Index: 0 Value: one
Index: 1 Value: two
Index: 2 Value: three
Index: 3 Value: four
Index: 4 Value: five
Index: 5 Value: six
Index: 6 Value: seven

要计算序列中某个值出现的次数,我们使用以下方法 .count()

print(sequence_type_1.count("five")) # Hiển thị: 1
print(sequence_type_3.count("l")) # Hiển thị: 2

方法的作用类似于函数,但与函数不同的是,我们并不是独立使用方法,而是方法总是带有一个值。方法总是跟在某个值后面并用点 ( .) 分隔这一事实证明了这一点。我们还将在接下来的课程中学习更多有关方法的知识。

要检查值在序列中的位置,我们使用以下方法 .index()

print(sequence_type_1.index("five")) # Hiển thị: 4

注意: 序列数据的成员也被不同的术语引用,例如元素或术语。

字符串数据类型

如前几课所述,字符串数据类型由一组字符组成,通常用单引号或双引号括起来。

greeting = "Hello World!"
print(type(greeting)) # Hiển thị: <type 'str'>

要计算字符串中的字符数,我们使用函数 len()

print(len(greeting)) # Hiển thị: 12

该函数 len() 将计算所有字符,包括特殊字符,如空格(键入空格键时的空格)、换行符 ( ) \n、制表符 ( \t)(如果字符串中存在):

greeting = "Hello\n World\t!"
print(len(greeting)) # 14

从字符串中的第 n 个字符到第 m 个字符:

# Lấy 
greeting = "Hello World!"
print(greeting[1:2]) # Hiển thị: e

要查找给定字符串中一个字符或一组字符的顺序,我们使用 以下方法 .find()

print(greeting.find("H")) # Hiển thị: 0
print(greeting.find("o")) # Hiển thị: 4
print(greeting.find("lo")) # Hiển thị: 3

要返回给定字符串中仅包含小写字符的字符串,我们使用以下方法 .lower()

greeting = "Hello World!"
print(greeting.lower()) # Hiển thị: hello world!

类似地,我们使用该方法 .upper() 从给定句柄返回一串大写字符:

print(greeting.upper()) # Hiển thị: HELLO WORLD!

注意: 在上述两种情况下,变量的值 greeting 保持不变。

循环遍历字符串中的字符

for char in greeting:
    print(char)
# Hiển thị:
# H
# e
# l
# l
# o

# W
# o
# r
# l
# d
# !

元组数据类型

元组数据类型是一种序列类型,但与字符串不同,使用元组我们可以将不同的数据类型存储在同一个集合中。

元组的元素包含在方括号中 ()

myTuple = (2017, "October", ["red","green", "blue"])

上面的变量 myTupple 有 3 个元素,有 3 种不同的数据类型:Number、String 和 List(liter 将在下一节介绍)。

如果 tupe 只包含一个元素,我们仍然需要在单个元素后放置一个逗号:

aTuple = (100,)
print(type(aTuple)) #<type 'tuple'>
anInteger = (100)
print(type(anInteger)) # <type 'int'>

将subscribe  ( []) 运算符与元组数据类型一起使用 :

print(myTuple[0]) # Hiển thị: 2017
print(myTuple[0, 1]) # Hiển thị: (2017, 'October')
print(type(myTuple[0, 1])) # Hiển thị: <type 'tuple'>

要计算元组中元素的数量,我们使用函数 len()

print(len(myTuple)) # 3

列表数据类型

List 数据类型的元素放在里面 []

fruits = ["apple","banana", "orange"]
print(fruits[0])# Hiển thị: apple

从列表中的第 n 个元素到第 m 个元素:

fruits = ["apple","banana", "kiwi", "orange"]
print(fruits[1:3]) # Hiển Thị: ['banana', 'kiwi']

我们还可以使用函数创建一个列表 list() 来列出字符串或元组的元素:

aString = "abc"
print(list(aString)) # ['a', 'b', 'c']
aTuple = (1, 2, 3)
print(list(aTuple)) # [1, 2, 3]

要对列表进行排序,我们使用以下函数 sorted()

fruits = ["banana", "orange", "kiwi", "apple"]
print(sorted(fruits)) # ['apple', 'banana', 'kiwi', 'orange']
print(fruits) # ['banana', 'orange', 'kiwi', 'apple']

上面的函数 sorted() 返回一个新列表,其中元素按字母顺序首先排序 a->z。上面的函数 sorted() 并没有改变原列表中元素的顺序 fruits 。

我们还可以使用 sorted() 数字类型:

numbers = [10.2, 5, 2, 3]
print(sorted(numbers)) # [2, 3, 5, 10.2]

此外,我们还可以 sorted() 在字符串或元组数据类型上使用该函数:

aString = "axcbzy"
print(sorted(aString)) # ['a', 'b', 'c', 'x', 'y', 'z']
aTuple = (8, 22, 13, 1, 15)
print(sorted(aTuple)) # [1, 8, 13, 15, 22]

您还应该注意,使用 sorted() 元组函数的返回结果是一个列表,而不是上面示例中看到的元组。

可变和不可变

与 string 或 tupple 不同,我们可以更改列表中元素的值:

fruits[2] = "lemon"
print(colors[0]) # Hiển thị: ['apple', 'banana', 'lemon']

我们说列表类型的数据是可变的或可变的。相反,string 和 tupple 类型的数据不能更改或不可变。

要将元素添加到列表中,我们使用以下方法 .append()

fruits.append("orrange")
print(fruits) # Hiển thị: ['apple', 'banana', 'lemon', 'orrange']

要从列表中删除一个元素,我们有两种不同的方法来使用函数 del() 或方法 .remove()

fruits = ["apple", "banana", "lemon", "orrange", "banana"]
# Xoá phần tử đầu tiên có giá trị là "banana"
fruits.remove("banana")
print(fruits) # Hiển thị: ['apple', 'lemon', 'orrange', 'banana']
# Xoá phần tử cuối cùng
del(fruits[-1])
print(fruits) # Hiển thị: ['apple', 'lemon', 'orrange']
# Xoá 2 phần tử tính từ phần tử đầu tiên
del(fruits[0:2])
print(fruits) # Hiển thị: ['orrange']

此外,列表数据类型还有特定于序列的方法,例如 .index() or  .count()