一、enumerate()
函數(shù)enumerate()是Python內(nèi)置函數(shù)之一,用于將一個(gè)可迭代對(duì)象轉(zhuǎn)換為一個(gè)枚舉對(duì)象,可以同時(shí)返回元素的索引和值。該函數(shù)的語法如下:
enumerate(iterable, start=0)
其中,iterable是可迭代對(duì)象,start是可選參數(shù),表示枚舉對(duì)象的起始值,默認(rèn)為0。
enumerate()函數(shù)的返回值是一個(gè)枚舉對(duì)象,可以使用list()函數(shù)將其轉(zhuǎn)換為列表類型。
enumerate()函數(shù)的作用有以下幾個(gè)方面:
以下是使用enumerate()函數(shù)的一些示例:
# 枚舉列表中的元素 **樣例1**lst = ['apple', 'banana', 'orange']for i, item in enumerate(lst): print(i, item)# 枚舉字符串中的字符 **樣例2**string = 'Python'for i, char in enumerate(string): print(i, char)# 枚舉文件中的行數(shù) **樣例3**with open('test.txt', 'r') as f: for i, line in enumerate(f, 1): print(i, line.strip())
****樣例1****
這段代碼中的 i 和 item 都是變量,用于在循環(huán)中計(jì)數(shù)和存儲(chǔ)列表中的元素。
具體來說,enumerate() 函數(shù)會(huì)返回一個(gè)可迭代對(duì)象,其中每個(gè)元素都是一個(gè)元組,包含兩個(gè)值:該元素在列表中的索引和對(duì)應(yīng)的元素值。因此,在這個(gè)例子中,for i, item in enumerate(lst): 表示將 lst 列表中的每個(gè)元素都拆分成一個(gè)索引和一個(gè)值的元組,并將它們分別賦值給變量 i 和 item。
在循環(huán)中,可以使用 i 和 item 分別訪問列表中的元素及其索引。例如,如果 lst 列表為 [1, 2, 3],那么在循環(huán)中,i 的值將依次為 0、1、2,而 item 的值將依次為 1、2、3。
****樣例2、3原理與1相似*****
上述代碼中,第一個(gè)示例演示了如何枚舉列表中的元素,第二個(gè)示例演示了如何枚舉字符串中的字符,第三個(gè)示例演示了如何枚舉文件中的行數(shù)。在這些示例中,enumerate()函數(shù)為可迭代對(duì)象添加了一個(gè)計(jì)數(shù)器,方便對(duì)元素進(jìn)行索引和編號(hào)。
二、dir()
函數(shù)dir()是Python內(nèi)置函數(shù)之一,用于返回一個(gè)對(duì)象的所有屬性和方法。它的作用是用于快速了解一個(gè)對(duì)象的可調(diào)用方法或?qū)傩?,方便程序員進(jìn)行編程和調(diào)試。
使用方法:
dir([object])
其中,object是可選的,如果指定了object,則返回該object的所有屬性和方法,如果沒有指定,則返回當(dāng)前作用域內(nèi)的所有屬性和方法。
下面是一些使用dir()函數(shù)的例子:
print(dir())
str_obj = 'hello'print(dir(str_obj))
****詳解輸出內(nèi)容****
這個(gè)代碼會(huì)輸出一個(gè)包含 str_obj 對(duì)象屬性的列表。具體來說,它會(huì)輸出以下內(nèi)容:
復(fù)制代碼lst_obj = [1, 2, 3]print(dir(lst_obj))
class MyClass: def __init__(self): self.name = 'myclass' def say_hello(self): print('hello')mc = MyClass()print(dir(mc))
通過以上例子,我們可以看到dir()函數(shù)可以幫助我們快速查看一個(gè)對(duì)象的所有屬性和方法,從而方便我們進(jìn)行編程和調(diào)試。
三、reversed()
函數(shù)reversed()是Python3內(nèi)置函數(shù)之一,用于翻轉(zhuǎn)(反轉(zhuǎn))序列對(duì)象。它可以用于列表、元組、字符串等可迭代對(duì)象。reversed()函數(shù)返回一個(gè)迭代器,因此需要使用for循環(huán)或者將其轉(zhuǎn)換為列表、元組等可迭代對(duì)象來進(jìn)行遍歷。
使用語法如下:
reversed(seq)
其中,seq為需要翻轉(zhuǎn)的序列對(duì)象。
reversed()函數(shù)的作用主要有以下幾個(gè):
下面通過代碼舉例說明reversed()函數(shù)的使用:
# 翻轉(zhuǎn)列表lst = [1, 2, 3, 4, 5]lst_reverse = list(reversed(lst))print(lst_reverse) # [5, 4, 3, 2, 1]# 翻轉(zhuǎn)字符串s = 'hello world's_reverse = ''.join(reversed(s))print(s_reverse) # 'dlrow olleh'# 遍歷翻轉(zhuǎn)后的序列對(duì)象for i in reversed(range(1, 6)): print(i)# 輸出:5 4 3 2 1
以上代碼中,首先使用reversed()函數(shù)翻轉(zhuǎn)了列表lst和字符串s,分別得到了lstreverse和sreverse兩個(gè)新的序列對(duì)象。然后,使用for循環(huán)結(jié)合reversed()函數(shù)遍歷了翻轉(zhuǎn)后的序列對(duì)象。
聯(lián)系客服