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 方法 遍歷 推導式的對應很厲害
#view code老師的方法,老師善用字典,新增增加 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']
#我做的,每次都弄成 reduce 不會用 亂用 做出來了才是 好方法
from functools importview codereduce
#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)
'''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)#view codeat 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
# 和迭代器似的,
# 11. 求結果自己寫# v = [lambda :x for x in range(10)]
# print(v)
# print(v[0])
# print(v[0]())
la =view codedef func(i): #
我自己聽了老師自己寫的 ,寫的函式位址一樣 結果對的
for i in range(10):
print(end=''
)
(func)##
return
func
func(0)
print(la)
老師舉例
li =view codefor 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
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迴圈變得更加通用。大部分內建函式,也是使用迭代器協議訪問物件的 可迭代物件...