Python 序列

Python是一种功能强大且受欢迎的编程语言,它提供了许多灵活的数据结构和内置函数,方便我们处理和操作各种类型的数据。其中,序列是Python中最常用的数据结构之一。

无论是处理文本、数字、图像还是其他类型的数据,我们经常需要使用序列进行存储、访问和操作。Python提供了多种序列类型,包括列表(list)、元组(tuple)和字符串(string)。每种序列类型都有其独特的特点和用途,理解它们将有助于更好地利用Python的强大功能。

在本博客系列中,将深入探讨Python序列的不同方面和基础知识开始,逐步介绍序列的创建、索引、切片以及常用的操作和方法。

列表(list)

列表是一种可变的有序序列,用方括号 [ ] 表示。你可以在列表中存储任意类型的元素,包括数字、字符串、甚至其他列表。以下是一些列表的示例:

empty_list = []

numbers = [1 , 2 , 3 , 4 , 5 ]

fruits = ['apple','banana','grape']

mixed = [1,'two' , 3.0 , [4,5]]

print(empty_list)
print(numbers)
print(fruits)
print(mixed[3])

Python 序列_第1张图片

 

元组(tuple)

元组是一种不可变的有序序列,用圆括号 () 表示。与列表不同,元组的元素不能被修改。

numbers1 = (1 , 2 , 3 , 4 , 5 )

fruits1 = ('apple','banana','grape')

mixed1 = (1,'two' , 3.0 , (4,5))
print(numbers1)
print(fruits1)
print(mixed1[3])

Python 序列_第2张图片

 这样看是一样的,元组和列表,除了括号不一样,其他都很相似,那么怎么看出他们的区别呢?

1)可变性(Mutability): 列表是可变的(mutable),这意味着你可以修改列表的元素、添加新元素或删除元素。而元组是不可变的(immutable),一旦创建,元组的元素不能被修改。

empty_list = []
numbers = [1 , 2 , 3 , 4 , 5 ]
fruits = ['apple','banana','grape']
mixed = [1,'two' , 3.0 , [4,5]]
fruits[0] = 'orange'
print(empty_list)
print(numbers)
print(fruits)
print(mixed[3])

numbers1 = (1 , 2 , 3 , 4 , 5 )
fruits1 = ('apple','banana','grape')
mixed1 = (1,'two' , 3.0 , (4,5))
fruits1[0] = 'orange'
print(numbers1)
print(fruits1)
print(mixed1[3])

Python 序列_第3张图片

 在上面的示例中,我们成功地修改了fruits列表的第一个元素apple(orange),但尝试修改元组的第一个元素时会引发 TypeError,因为元组是不可变的!

除了对列表中现有元素进行修改外,还可以使用 append( ) 向列表中添加新元素:

fruits = ['apple','banana','grape']
fruits[0] = 'orange'

print(fruits)
fruits[0]='peach'
fruits = fruits + ['kiwi']
fruits.append('pineapple')
print(fruits)

Python 序列_第4张图片

 

#如果非要修改元组的话,我们要用重新赋值的方式操作:

fruits = ('apple','banana','grape')
fruits = ('apple','banana','kiwi')
print(fruits)

Python 序列_第5张图片

 

2) 内存占用和性能:由于列表是可变的,它们需要额外的内存空间来处理动态修改的操作。而元组是不可变的,它们在内存中的占用更小,因为不需要为可能的修改操作分配额外的空间。可以使用 Python 的 sys 模块来测试对象在内存中的大小。

import sys

my_list = [1, 2, 3]
my_tuple = (1, 2, 3)

print(sys.getsizeof(my_list))
print(sys.getsizeof(my_tuple)) 

 在上面的示例中,我们使用 sys.getsizeof() 函数获取对象在内存中的大小。通常情况下,列表的大小会比元组大。

使用场景和适用性: 由于列表是可变的,它们通常用于存储需要频繁修改的数据,或者用于实现数据集合的动态性。而元组的不可变性使其适用于存储不可变的数据,例如表示坐标、日期时间或其他不应修改的数据。

del 删除元素

fruits = ['apple','banana','grape']
fruits[0] = 'orange'

print(fruits)
fruits[0]='peach'
fruits = fruits + ['kiwi']
fruits.append('pineapple')
print(fruits)

del fruits[3]
print(fruits)

Python 序列_第6张图片

 #只能删除列表中的元素,不能删除元组中的元素,只能删除整个元组:

del fruits[0]
print(fruits)
# del fruits
# print(fruits)

Python 序列_第7张图片

 

#del fruits[0]
#print(fruits)
del fruits
print(fruits)

Python 序列_第8张图片

#由于元组实例被删除,所以输出了异常信息。 

count( )

    统计列表中某个元素出现的次数:

dictionary = ['w','o', 'x','i', 'h','u','a',  'x','u','e', 'x','i', 'p','y','t','h','o','n']
print(dictionary.count('i'))

Python 序列_第9张图片

index( ) 

查找某个元素在列表中首次出现的位置(即索引)

dictionary = ['w','o', 'x','i', 'h','u','a',  'x','u','e', 'x','i', 'p','y','t','h','o','n']
print(dictionary.count('i'))
print(dictionary.index('i'))

Python 序列_第10张图片

 

remove( )

移除列表中某个值的首次匹配项

dictionary = ['a','i','c','q','i','c','b']
print(dictionary.count('i'))
print(dictionary.index('i'))
test = dictionary.remove('i')
print(test)
print(dictionary)

Python 序列_第11张图片

在 Python 中,列表的 remove() 方法用于从列表中删除指定的元素。该方法会修改原始列表,并且不返回任何值(即返回 None)。因此,当你打印 test 变量时,它的值会是 None,这表明成功删除了指定的元素。

copy( )

   复制列表

dictionary = ['a','i','c','q','i','c','b']
# print(dictionary.count('i'))
# print(dictionary.index('i'))
# test = dictionary.remove('i')
# print(test)
# print(dictionary)
copy_text = dictionary.copy()
print(copy_text)

Python 序列_第12张图片

 

字符串(string)

字符串是由字符组成的不可变序列,用单引号 '' 或双引号 "" 表示。字符串可以进行索引和切片操作。

索引操作(Indexing)

empty_list = []

numbers = [1, 2, 3, 4, 5]

fruits = ['apple', 'banana', 'orange']

mixed = [1, 'two', 3.0, [4, 5]]

name = 'Richard'

sentence = "I love Python!"

special_chars = '@#$%^'

empty_string = ''

print(numbers[0])
print(fruits[1])
print(name[2])

 

相加操作(Concatenation)

fruits = ['apple','banana','grape','orange']

conbined = fruits + ['strawberry','lemon']

print(conbined)

Python 序列_第13张图片

 

切片操作(Slicing)

sentence = 'I LOVE STUDY PYTHON'
name = 'Richard'
numbers = [1, 2, 3, 4, 5]
print(numbers[1:4])
print(name[1:4])
print(sentence[:6])
print(sentence[7:]) 

 相乘操作(Repetition)

fruits = ['apple','mango','kiwi']

print(fruits[0] * 2)

 元素是否在序列中(Membership)

Python 使用 in 关键字检查某元素是否为序列的成员,语法如下:

val in seq

  • val:要检查的元素;

  • seq:指定的序列。

fruits = ['apple','mango','kiwi']

print(fruits[0] * 2)
print('apple' in fruits)
print('stawberry' in  fruits)
print('watermelon' not in fruits)

 

内置函数(Built-in Functions)

内置函数是Python语言中预先定义好的函数,它们可以直接使用,无需导入其他模块。Python提供了丰富的内置函数来执行各种常见的任务,包括数学运算、字符串处理、列表和字典操作、文件操作等。下面是一些常用的内置函数及其描述:

函数名 描述
abs(x) 返回一个数的绝对值。
len(s) 返回一个序列(字符串、列表、元组等)的长度。
range(start, stop, step) 生成一个整数序列,以供迭代使用。
round(number, ndigits) 对一个数进行四舍五入。
str(object) 将一个对象转换为字符串表示形式。
int(x) 将一个数值或字符串转换为整数。
float(x) 将一个数值或字符串转换为浮点数。
max(iterable) 返回一个序列中的最大值。
min(iterable) 返回一个序列中的最小值。
sum(iterable) 返回一个序列中所有元素的总和。
sorted(iterable) 返回一个排序后的列表。
reversed(sequence) 返回一个反向迭代器,用于反向遍历序列。

sentence = 'ilovepython'

fruits = ['apple','mango','kiwi']

my_list = [1,2,3,4]

print(str(my_list))

print(len(sentence))

print(max(sentence))

print(sorted(sentence))

print(min(sentence))

Python 序列_第14张图片

 

 tuple()

将列表转换为元组

fruits = ['apple','banana','grape']
fruit = tuple(fruits)
print(fruit)

Python 序列_第15张图片

 

你可能感兴趣的:(Python,笔记,python,开发语言)