當前位置:首頁 » 編程語言 » pythonfor遍歷tuple

pythonfor遍歷tuple

發布時間: 2022-10-03 23:38:47

⑴ 如何對tuple進行迭代

先說迭代器,對於string、list、dict、tuple等這類容器對象,使用for循環遍歷是很方便的。在後台for語句對容器對象調用iter()函數,iter()是python的內置函數。iter()會返回一個定義了next()方法的迭代器對象,它在容器中逐個訪問容器內元素,next()也是python的內置函數。在沒有後續元素時,next()會拋出一個StopIteration異常,通知for語句循環結束。生成器(Generator)是創建迭代器的簡單而強大的工具。它們寫起來就像是正規的函數,只是在需要返回數據的時候使用yield語句。每次next()被調用時,生成器會返回它脫離的位置(它記憶語句最後一次執行的位置和所有的數據值)。

⑵ python中 for 循環的in 是一定要的么

Python for循環中in是必須的。

Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來。

names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
執行結果:
Michael
Bob
Tracy

第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum

在循環內部變數n不斷自減,直到變為-1時,不再滿足while條件,循環退出。

⑶ python 字典和元組遍歷速度哪個快

當然是元組了,元組就相當於數組,直接按照索引去取元素。而字典是按照key去取元素(類似於hash表),速度當然比不上元組了。下面的測試可以提供一些直觀的感覺。


$python-mtimeit-s'a=dict(a=12,b=13,c=14)''fork,vina.items():''pass'
1000000loops,bestof3:0.391usecperloop
$python-mtimeit-s'a=(12,13,14)''forvina:''pass'
10000000loops,bestof3:0.12usecperloop


可以看到遍歷同樣是三個元素的dict的時間大致上是tuple的3倍左右。 (實際上這個時間包括了創建 dict 和 tuple 的時間,創建dict的時間也是要大於創建tuple的時間的,這里就不細分了,總之,dict的創建、訪問時間一定是大於tuple的)


但是在python中,dict是做過極度優化的,其效率已經非常高了,因為在python中它的使用實在是太廣了。所以在實際編程中,一般我們只根據實際需求來考慮使用什麼數據結構 (dict, list, set, tuple),而不是根據不同數據結構的訪問速度差別。

⑷ python for 語句的使用方法

Python 中的 for 語句和 C 或 Pascal 中的略有不同。通常的循環可能會依據一個等差數值步進過程(如 Pascal),或由用戶來定義迭代步驟和中止條件(如 C ),Python 的 for 語句依據任意序列(鏈表或字元串)中的子項,按它們在序列中的順序來進行迭代。例如(沒有暗指):
>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
在迭代過程中修改迭代序列不安全(只有在使用鏈表這樣的可變序列時才會有這樣的情況)。如果你想要修改你迭代的序列(例如,復制選擇項),你可以迭代它的復本。使用切割標識就可以很方便的做到這一點:

⑸ python中列表和元組之間有什麼區別

除了元組是不可變的之外,還應有語義上的區別來指導它們的用法。元組是異構數據結構(即它們的條目具有不同的含義),而列表是同類序列。元組具有結構,列表具有順序。
使用這種區別可以使代碼更加明確和易於理解。
一個示例是成對的頁和行號,以成對參考書中的位置,如:
my_location = (42, 11) # page number, line number

然後,可以將其用作字典中的鍵來存儲有關位置的注釋。另一方面,列表可用於存儲多個位置。自然地,人們可能想在列表中添加或刪除位置,因此使列表可變是有意義的。另一方面,從現有位置添加或刪除項目沒有意義-因此,元組是不可變的。
在某些情況下,可能想更改現有位置元組中的項目,例如在頁面的各行中進行迭代時。但是元組不變性迫使您為每個新值創建一個新的位置元組。從表面上看,這似乎很不方便,但是使用這樣的不可變數據是值類型和函數式編程技術的基石,它可以具有很多優點。
官方Python文檔也提到了這一點
「組是不可變的,並且通常包含一個異類序列…」。
在像Haskell這樣的靜態類型語言中,元組中的值通常具有不同的類型,並且元組的長度必須固定。在列表中,所有值都具有相同的類型,並且長度不是固定的。因此區別非常明顯。

⑹ python自學筆記13:元組和字典的操作

定義元組(tuple):

t1=(1,2,3,4)#多個數據元組

t2=(1,)#如果元組內只有一個數據,也需要手逗號隔開,否則這個數據將是他本身的類型。

元組的操作:

元組類型數據不支持修改,可查找

查找:

按下標查找:

print(t1[1])

函數查找:

print(t1.index(1))返回對應下標,如果數據不存在,程序將報錯

print(t1.count(1))統計數據在元組當中出現的次數

print(len(t1))統計元組當中的數據個數

注意:當元組內嵌套列表數據,可以通過下標的方法對列表數據進行修改如:

t3=(1,2,["a","b"])

t3[2][0]=c #t3的值將變為(1,2,["c","b"])

——————————————————

——————————————————

定義字典(dict)

字典的特點

1:符號為{}

2:數據為鍵(key)值(value)對形式,每個鍵值對之間用逗號隔開如:

dict1={"name":"小明","age":18,"gender:男"}

字典的操作:

dict1["name"]="小紅"

dict1["id"]=3

如果key存在,將修改其所對應的值。如果不存在,將在字典最後添加該鍵值對

2.刪除數據

del():刪除字典或刪除字典內的鍵值對

del dict1["name"] 刪除字典內的鍵值對,如果刪除的key不存在,程序將會報錯

del(del)刪除字典

clear(dict1) 清空字典

3.查找數據

一.按照key進行查找,最後返回相對應的值

二.按函數進行查找:

(1) get(key,默認值):

如果查找的key不存在則返回所寫的默認值,如果不寫默認值則返回None

dict1={"name":"小明","age":18,"gender:男"}

print(dict1.get("name")) #小明

print(dict1.get("id",110)) # 110

——————————————————

(2) keys():返回字典內的所有key 可用for遍歷

print(dict1.keys())

返回 ["name","age","gender"]

for key in dict1.keys():

..print(key)

逐行輸出name age gender

——————————————————

(3) values(): 返回字典內的值 可用for遍歷

print(dict1.values())

返回["小明",18,"男"]

for value dict1.values():

..print(value)

逐行輸出小明 18 男

——————————————————

(4) items():將字典內的數據以元組的形式返回

print(dict1.items()) 可用for遍歷

返回[("name","小明"),("age",18),("gender","男")]

for item in dict1.items():

..print(item)

逐行輸出 ("name","小明") ("age",18)("gender","男")

——————————————————

遍歷字典鍵值對(拆包) 可在for內使用兩個臨時變數

dict1={"name":"小明","age":18,"gender:男"}

for key,value in dict1.items():

..print(f"{key}=value")

逐行輸出:

name=小明 age=18 gender=男

⑺ Python中如何遍歷指定目錄下的所有文件

例如:在C:\TDDOWNLOAD目錄下有a.txt、b.txt兩個文件,另有\sub1子文件夾,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt兩個文件。

1.
os.walk
os.walk()返回一個三元素的tuple:當前路徑、子文件夾名稱、文件列表。
>>>
import
os
>>>
def
fun(
path
):
...
for
root,
dirs,
files
in
os.walk(
path
):
...
for
fn
in
files:
...
print
root,
fn
...
>>>
fun(
r'C:\TDDOWNLOAD'
)
C:\TDDOWNLOAD
a.txt
C:\TDDOWNLOAD
b.txt
C:\TDDOWNLOAD\sub1
c.txt
C:\TDDOWNLOAD\sub1
d.txt
>>>

2.
glob.glob
glob.glob()只接受一個參數,這個參數既代有路徑,又代有匹配模式,
返回值
為一個列表。注意,glob.glob()無法直接穿透子文件夾,需要自己處理:
>>>
def
fun(
path
):
...
for
fn
in
glob.glob(
path
+
os.sep
+
'*'
):
#
'*'代表匹配所有文件
...
if
os.path.isdir(
fn
):
#
如果結果為文件夾
...
fun(
fn
)
#
遞歸
...
else:
...
print
fn
...
>>>
fun(
r'C:\TDDOWNLOAD'
)
C:\TDDOWNLOAD\a.txt
C:\TDDOWNLOAD\b.txt
C:\TDDOWNLOAD\sub1\c.txt
C:\TDDOWNLOAD\sub1\d.txt
>>>

'*'為匹配模式,代表匹配所有文件,只有這樣才能將子文件夾查出來,以便遞歸深入,探查下一層的文件。

⑻ 如何在python中實現循環指定次數

python中實現循環指定次數:

count=0

for item in list:
print item
count +=1 if count % 10 == 0:
print 'did ten'

或:

for count in range(0,len(list)):
print list[count] if count % 10 == 0:
print 'did ten'

在Python的for循環里,循環遍歷可以寫成:

for item in list:

print item

(8)pythonfor遍歷tuple擴展閱讀:

Python 注意事項:

1、tuple:元組

(1)元組一旦初始化就不可修改。不可修改意味著tuple更安全。如果可能,能用tuple代替list就盡量用tuple。

(2)定義只有一個元素的tuple的正確姿勢:t = (1,),括弧內添加一個逗號,否則會存在歧義。

2、dict:字典

a.獲取value值:dict['key'],若key不存在,編譯器就會報錯KeyError。避免方法:

一是通過 in 判斷 key 值是否在dict中:

'key' in dict # 返回True 或 False。

二是通過 dict 的函數get():

dict.get('key') # 返回 value 值 或 None。

⑼ Python中如何遍歷指定目錄下的所有文件

例如:在C:\TDDOWNLOAD目錄下有a.txt、b.txt兩個文件,另有\sub1子文件夾,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt兩個文件。
1.
os.walk
os.walk()返回一個三元素的tuple:當前路徑、子文件夾名稱、文件列表。>>>
import
os>>>
def
fun(
path
):...
for
root,
dirs,
files
in
os.walk(
path
):...
for
fn
in
files:...
print
root,
fn...
>>>
fun(
r'C:\TDDOWNLOAD'
)C:\TDDOWNLOAD
a.txtC:\TDDOWNLOAD
b.txtC:\TDDOWNLOAD\sub1
c.txtC:\TDDOWNLOAD\sub1
d.txt>>>
2.
glob.glob
glob.glob()只接受一個參數,這個參數既代有路徑,又代有匹配模式,返回值為一個列表。注意,glob.glob()無法直接穿透子文件夾,需要自己處理:>>>
def
fun(
path
):...
for
fn
in
glob.glob(
path
+
os.sep
+
'*'
):
#
'*'代表匹配所有文件...
if
os.path.isdir(
fn
):
#
如果結果為文件夾...
fun(
fn
)
#
遞歸...
else:...
print
fn...
>>>
fun(
r'C:\TDDOWNLOAD'
)C:\TDDOWNLOAD\a.txtC:\TDDOWNLOAD\b.txtC:\TDDOWNLOAD\sub1\c.txtC:\TDDOWNLOAD\sub1\d.txt>>>
'*'為匹配模式,代表匹配所有文件,只有這樣才能將子文件夾查出來,以便遞歸深入,探查下一層的文件。

⑽ python 多元tuple怎樣for循環

與其它大多數語言一樣,Python 也擁有 for 循環。你到現在還未曾看到它們的唯一原因就是,Python
在其它太多的方面表現出色,通常你不需要它們。

其它大多數語言沒有像 Python 一樣的強大的 list
數據類型,所以你需要親自做很多事情,指定開始,結束和步長,來定義一定范圍的整數或字元或其它可重復的實體。但是在 Python 中,for
循環簡單地在一個列表上循環,與 list 解析的工作方式相同。

1. for 循環介紹

復制代碼
代碼如下:

>>> li = ['a', 'b',
'e']
>>> for s in li: (1)
... print s
(2)
a

e
>>> print "\n".join(li)
(3)
a

e

(1) for 循環的語法同 list 解析相似。li 是一個 list,而 s 將從第一個元素開始依次接收每個元素的值。
(2) 像 if
語句或其它任意縮進塊,for 循環可以包含任意數目的代碼行。
(3) 這就是你以前沒看到過 for
循環的原因:至今我們都不需要它。太令人吃驚了,當你想要的只是一個 join 或是 list 解析時,在其它語言中常常需要使用 for 循環。

要做一個 「通常的」 (Visual Basic 標準的) 計數 for 循環也非常簡單。

2. 簡單計數

復制代碼
代碼如下:

>>> for i in range(5):
(1)
... print i

>>> li = ['a', 'b',
'c', 'd', 'e']
>>> for i in range(len(li)): (2)
- 104 -Dive
Into Python http://diveintopython.org/
... print
li[i]

(1) range 生成一個整數的 list,通過它來控制循環。我知道它看上去有些奇怪,但是它對計數循環偶爾 (我只是說偶爾) 會有用

(2) 我們從來沒這么用過。這是 Visual Basic 的思維風格。擺脫它吧。正確遍歷 list 的方法是前面的例子所展示的。

熱點內容
安卓上哪裡下大型游戲 發布:2024-12-23 15:10:58 瀏覽:187
明日之後目前適用於什麼配置 發布:2024-12-23 14:56:09 瀏覽:51
php全形半形 發布:2024-12-23 14:55:17 瀏覽:826
手機上傳助手 發布:2024-12-23 14:55:14 瀏覽:731
什麼樣的主機配置吃雞開全效 發布:2024-12-23 14:55:13 瀏覽:828
安卓我的世界114版本有什麼 發布:2024-12-23 14:42:17 瀏覽:708
vbox源碼 發布:2024-12-23 14:41:32 瀏覽:275
詩經是怎麼存儲 發布:2024-12-23 14:41:29 瀏覽:657
屏蔽視頻廣告腳本 發布:2024-12-23 14:41:24 瀏覽:418
php解析pdf 發布:2024-12-23 14:40:01 瀏覽:816