問題13 如何在for語句中迭代多個可迭代的物件

2022-08-10 14:30:13 字數 2985 閱讀 7929

from random import randint

a1 = [randint(10, 50) for _ in range(5)]

a2 = [randint(10, 50) for _ in range(5)]

a3 = [randint(10, 50) for _ in range(5)]

a4 =

例一:並行操作:在乙個for迴圈中實現多個列表的並行迭代;

方案:使用內建函式zip,將多個迭代物件合併,每次迭代返回乙個元組

案例:對3個列表同時迭代,計算各列表對應元素的和;

#方法一:直接用for迴圈引用

#弊端:只能支援引索操作:a1,若操作物件是生成器,則不能實現;

for i in range(5):

t = a1[i] + a2[i] + a3[i]

print(a4)

#輸出:[84, 67, 85, 88, 82]

#方法二:用內建函式zip()

for x, y, z in zip(a1, a2, a3):

print(a4)

#輸出:[44, 72, 73, 94, 130]

例二:川行操作:在乙個for迴圈中實現多個列表的川行迭代;

方案:使用標準庫itertools.chain,它能使多個迭代物件連線

itertools.chain的使用,也可參考:python:itertools庫的使用

場景一:from itertools import chain

b1 = [1, 2, 3, 4]

b2 = ['a', 'b', 'c']

b3 = list(chain(b1, b2))

print(b3)

#輸出:[1, 2, 3, 4, 'a', 'b', 'c']

場景二:for x in chain(b1, b2):

print(x)

#輸出:1 2 3 4 a b c

案例:對4個列表進行迭代操作,篩選出目標資料(大於40的個數):

from itertools import chain

from random import randint

a1 = [randint(10, 50) for _ in range(40)]

a2 = [randint(10, 50) for _ in range(41)]

a3 = [randint(10, 50) for _ in range(42)]

a4 = [randint(10, 50) for _ in range(43)]

count = 0

for x in chain(a1, a2, a3, a4):

if x >=40:

count += 1

print(count)

from random import randint

a1 = [randint(10, 50) for _ in range(5)]

a2 = [randint(10, 50) for _ in range(5)]

a3 = [randint(10, 50) for _ in range(5)]

a4 =

例一:並行操作:在乙個for迴圈中實現多個列表的並行迭代;

方案:使用內建函式zip,將多個迭代物件合併,每次迭代返回乙個元組

案例:對3個列表同時迭代,計算各列表對應元素的和;

#方法一:直接用for迴圈引用

#弊端:只能支援引索操作:a1,若操作物件是生成器,則不能實現;

for i in range(5):

t = a1[i] + a2[i] + a3[i]

print(a4)

#輸出:[84, 67, 85, 88, 82]

#方法二:用內建函式zip()

for x, y, z in zip(a1, a2, a3):

print(a4)

#輸出:[44, 72, 73, 94, 130]

例二:川行操作:在乙個for迴圈中實現多個列表的川行迭代;

方案:使用標準庫itertools.chain,它能使多個迭代物件連線

itertools.chain的使用,也可參考:python:itertools庫的使用

場景一:from itertools import chain

b1 = [1, 2, 3, 4]

b2 = ['a', 'b', 'c']

b3 = list(chain(b1, b2))

print(b3)

#輸出:[1, 2, 3, 4, 'a', 'b', 'c']

場景二:for x in chain(b1, b2):

print(x)

#輸出:1 2 3 4 a b c

案例:對4個列表進行迭代操作,篩選出目標資料(大於40的個數):

from itertools import chain

from random import randint

a1 = [randint(10, 50) for _ in range(40)]

a2 = [randint(10, 50) for _ in range(41)]

a3 = [randint(10, 50) for _ in range(42)]

a4 = [randint(10, 50) for _ in range(43)]

count = 0

for x in chain(a1, a2, a3, a4):

if x >=40:

count += 1

print(count)

如何在Select語句中增加自增字段

不能改欄位,要在select語句中實現第一列是自增的,也就是原欄位不變,只是在查詢結果中加一列自增列。用select來做。1 select identity int,1,1 as iid,into tmp from 表 select from tmp 2 如果有關鍵字段 select select ...

INSERT INTO 語句中的引號問題

insert into 語句用於向 中插入新的行。insert into 表名稱 values 值1,值2,我們也可以指定所要插入資料的列 insert into table name 列1,列2,values 值1,值2,關鍵點 關於 雙引號 和單引號的解釋 下面先簡單地說一下他們的意義。1 是連...

switch語句中的case穿透問題

測試 int x 2 int y 3 switch x system.out.println y y 執行順序 匹配物件為x,首先進入switch語句後,不會直接進入default語句,它是在沒有匹配case的情況下最後去執行的,繼續往向下走,沒有匹配上case3,繼續往下走,依舊沒有匹配,繼續向下...