以下是“Python从list类型、range()序列简单认识类(class)【可迭代】”的完整攻略。
1. list类型
list是Python中最常用的数据类型之一,它是一种有序的可变序列可以包含任意类型的对象。list可以通过方括号[]或list()函数来创建。
1.1 创建list
my_list = [1, 2, 3, 4, 5]
在上面的示例代码中,我们使用方括号[]来创建一个名为my_list的列表,其中包含5个整数。
1.2 访问list元素
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 输出1
print(my_list[-1]) # 输出5
在上面的示例代码中,我们使用方括号[]和索引来访问列表中的元素。在第一个print语句,我们打印了列表中的第一个元素,即1。在第二个print句中,我们使用负数索引来访问列表中的最后一个元素,即5。
1.3 修改list元素
my_list = [1, 2, 3, 4, 5]
my_list[0] = 0
print(my_list) # 输出[0, 2, 3, 4, 5]
在上面的示例代码,我们使用方括号[]和索引来修改列表中的元素。在将第一个元素1改为0后,我们打印了修改后的列表。
2. range()序列
range()是Python中的一个内置函数,用于生成一个整数序列。它可以接受1到3个参数,分别表示起始值、终止值和步长。如果只传递一个参数,则默认起始值0,步长为1。
2.1 创建range()序列
my_range = range(1, 6, 2)
在上面的示例代码中,我们使用range()函数创建了一个名为my_range的序列,其中包含从1到5的奇数。
2.2 访问range()序列元素
my_range = range(1, 6, 2)
print(my_range[0]) # 输出1
print(my_range[-1]) # 输出5
在上面的示例代码中,我们使用方括号[]和索引来访问序列中的元素。在第一个print语句,我们打印了序列中的第一个元素,即1。在第二个print语句中,我们使用负数索引来访问序列的最后一个元素,即5。
2.3 range()序列不可修改
需要注意的是,range()序列是不可修改的,因为它是一个生成器。如果需要修改序列中的元素,可以将其转换为列表。
my_range = range(1, 6, 2)
my_list = list(my_range)
my_list[0] = 0
print(my_list) # 输出[0, 3, 5]
在上面的示例代码中,我们使用list()函数将my_range序列转换为列表,并将第一个元素从1改为0。在打印修改后的列表时,我们可以看到第一个元素已经被修改为0。
3. 类(class)【可迭代】
类是Python中的一种高级数据类型,它可以用于封装数据和行为。类可以实现__iter__()方法来使其实例成为可迭代对象。
3.1 创建类
class MyIterable:
def __init__(self, items):
self.items = items
def __iter__(self):
return iter(self.items)
my_iterable = MyIterable([1, 2, 3, 4, 5])
for item in my_iterable:
print(item)
在上面的示例代码中,我们定义了一个名为MyIterable的类,它实现了__iter__()方法。在创建my_iterable对象后,我们使用for循环来迭代它,并打印每个返回值。
3.2 示例说明
示例1:使用类生成斐波那契数列
class Fibonacci:
def __init__(self, n):
self.n = n
def __iter__(self):
self.a, self.b = 0, 1
self.count = 0
return self
def __next__(self):
if self.count >= self.n:
raise StopIteration
value = self.a
self.a, self.b = self.b, self.a + self.b
self.count += 1
return value
fib = Fibonacci(10)
for i in fib:
print(i)
在上面的示例代码中,我们定义了一个名为Fibonacci的类,它实现了__iter__()和__next__()方法。在创建fib对象,我们使用for循环来迭代它,并打印前10个斐波那契数。
示例2:使用类实现文件读取
class MyFileReader:
def __init__(self, filename):
self.filename = filename
def __iter__(self):
self.file = open(self.filename, 'r')
return self
def __next__(self):
line = self.file.readline()
if not line:
self.file.close()
raise StopIteration
return line.strip()
file_reader = MyFileReader('data.txt')
for line in file_reader:
print(line)
在上面的示例代码中,我们定义了一个名为MyFileReader的类,它实现了__iter__()和__next__()方法。在创建file_reader对象后,我们使用for循环来迭代它,并打印文件中的每一行。在__next__()中,我们使用readline()来读取文件中的每一行,并在读取完所有行后关闭文件。
4. 总结
本文介绍了Python中list类型、range()序列和类的概念和用法,包括创建、访问和修改元素。同时,还介绍了如何使用类实现可迭代对象,并提供了两个示例说明。在使用可迭代对象时,需要注意其特殊性和迭代方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python从list类型、range()序列简单认识类(class)【可迭代】 - Python技术站