迭代器 內建函式 字典

2022-03-04 01:38:10 字數 2816 閱讀 9779

13.有兩個字串列表,a和b,每個字元是由逗號分隔的一些字元,(公升級題)盡量做得支援擴充套件

a =[

'a,1',

'b,3,22',

'c,3,4'

'f,5']

b=['a,2',

'b,4',

'd,2'

'e,12']

按每個字串的第乙個值,合併a和b到c

c =[

'a,1,2',

'b,3,22,4',

'c,3,4',

'd,2',

'e,12',

'f,5']

# 老師的方法,老師善用字典,新增增加  get 方法  遍歷  推導式的對應很厲害

#

老師的方法,老師善用字典,新增增加 get 方法 遍歷 推導式

dic = #

l =for em in b: #

遍歷好if dic.get(em[0]): #

如果在裡面 則是真

#em += dic[em[0]][1:]

# dic[em[0]]+=em[1:]#

新增值 切片一下

else

: ##

dic[em[0]] = em #

不在裡面 新增鍵值對

#print(dic.values())#

dict_values(['a,1,2', 'b,3,22,4', 'c,3,4', 'f,5', 'd,2', 'e,12'])

print(list(dic.values()))#

['a,1,2', 'b,3,22,4', 'c,3,4', 'f,5', 'd,2', 'e,12']

view code

#我做的,每次都弄成 reduce 不會用 亂用 做出來了才是  好方法

from functools import

reduce

#i = 0

lis =

#def func(x,y): # x=12345

for i in

range(len(x)):

if x[i][0] ==y[i][0]:

#print(x[i][0])

else

:

#return x[i][i],y[i][i] # reduce 是做累計算的

#print(reduce(func,(a,b)))

#func(a,b)

print(lis)

view code

'''

12. 求結果

v = (lambda :x for x in range(10))

print(v)

print(v[0])

print(v[0]())

print(next(v))

print(next(v)())'''

print(v)#

at 0x000000000289e938>

#print(v[0])#typeerror: 'generator' object is not subscriptable

#print(v[0]())#typeerror: 'generator' object is not subscriptable

print(next(v)()) #

0a = v.__next__

()print(v.__iter__().__next__())#

.at 0x00000000028aa268>

print(v.__next__)#

print(next(v))#

.at 0x000000000288a2f0>

print(next(v)())#

4print(next(v)())#

5print(next(v)())#

6

view code

# 和迭代器似的,

# 11.    求結果

# v = [lambda :x for x in range(10)]

# print(v)

# print(v[0])

# print(v[0]())

自己寫

la =

def func(i): #

我自己聽了老師自己寫的 ,寫的函式位址一樣 結果對的

for i in range(10):

print(end=''

)

print

(func)##

return

func

func(0)

print(la)

view code

老師舉例

li =

for x in range(10):#

老師說的太棒了

deffunc():

return

xprint

(li)

v = [lambda :x for x in range(10)]

print('

\n',v,'

\n',li) #

兩個 分別是lambda 和函式的 10個位址

print(v[0],li[0])#

.at 0x000000000290f0d0>

print(v[0](),li[0]())#

9 9

view code

04 迭代器 生成式 內建函式

二 自定義迭代器 生成器 三 面向過程程式設計 四 生成式 五 內建函式 迭代器的特點 不依賴於索引和key取值,是通用的取值方式 惰性計算,節省記憶體對可迭代物件使用python內建的 iter 方法可以得到迭代器 l1 1 2,3 res l1.iter 就等同於 res iter l1 pri...

python 迭代器 生成器 內建函式

迭代器是迭代取值的工具,迭代是乙個重複的過程,每一次重複都是基於上一次的結果而來的.為什麼要用迭代器呢?1.可以不依賴索引取值 2.同一時刻在記憶體中只有乙個值,不會過多的占用記憶體 如何用迭代器?可迭代的物件 但凡內建有 iter 方法的物件都是可迭代的物件,列如str,list,dict,tup...

02 迭代器生成器內建函式

day2迭代器生成器內建函式 列表與生成器表示式的區別 把列表解析的換成 得到的就是生成器表示式 列表解析與生成器表示式都是一種便利的程式設計方式,只不過生成器表示式更加節省記憶體空間 python不但使用迭代器協議,讓for迴圈變得更加通用。大部分內建函式,也是使用迭代器協議訪問物件的 可迭代物件...