pythonmap函數
⑴ 200懸賞,,python, map()使用問題
⑵ python map()函數問題
不知道你的dataSet 是什麼數據,是否是從資料庫取出來的結果游標,
如果是的 那麼dataSet 只能用一次,用空之後它就為空了
檢測方法
D = map(set,dataSet)
print dataSet #看看這里的 dataSet 是否為空了
如果是以上說的情況 很容易解決
操作之前 給 給個變數 接納一哈 這個結果集
tmp = dateSet
D = map(set,tmp)
print len(list(D))
print len(list(D))
⑶ python中map函數
map在python2返回list,在python3返回iterator.
如果想在python3得到可以反復重用的list,只要把iterator轉成list即可:
lst_result=list(map(func,items))
⑷ python map函數怎麼用啊!
1、對可迭代函數'iterable'中的每一個元素應用『function』方法,將結果作為list返回。
來個例子:
>>> def add100(x):
... return x+100
...
>>> hh = [11,22,33]
>>> map(add100,hh)
[111, 122, 133]
就像文檔中說的:對hh中的元素做了add100,返回了結果的list。
2、如果給出了額外的可迭代參數,則對每個可迭代參數中的元素『並行』的應用『function』。(翻譯的不好,這里的關鍵是『並行』)
>>> def abc(a, b, c):
... return a*10000 + b*100 + c
...
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(abc,list1,list2,list3)
[114477, 225588, 336699]
看到並行的效果了吧!在每個list中,取出了下標相同的元素,執行了abc()。
3、如果'function'給出的是『None』,自動假定一個『identity』函數(這個『identity』不知道怎麼解釋,看例子吧)
>>> list1 = [11,22,33]
>>> map(None,list1)
[11, 22, 33]
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(None,list1,list2,list3)
[(11, 44, 77), (22, 55, 88), (33, 66, 99)]
⑸ python map函數傳入多個參數後出錯
def mul(x): return x*x def my_map(func, args): for n in args: print(func(n)) my_map(mul, [1,2,3,4])
⑹ Python 3.5.1的map函數結果輸出一串字元
python3
map和zip一樣返回的是迭代子,而不是所有的結果,你可以通過next函數獲取下一個或者外加list獲取全部
⑺ 求python的map函數
_tabkeys = map(int,tabkeys[1:_len])
相當來於_tabkeys[0] = int(tabkeys[1])
.... _tabkeys[i] = int(tabkeys[i+1])
這不正是你要的?自
例子:
>>> tabkeys=['1','2','3']
>>> _len = len(tabkeys)
>>> _tabkeys = map(int,tabkeys[1:_len])
>>> _tabkeys
[2, 3]
>>> _tabkeys[0]
2
>>> tabkeys[1]
'2'
>>>
如果這不是你想要的,請舉例說明什麼是想要的結果。
⑻ python 3.5 map 函數 提示<map object at 0x000000000A32A320>
python3相對python2map返回有點小變化
print(list(map(lambda...,...)))
要想得到列表得用list()轉換哈否者得到是map對象
⑼ 假設python沒有提供map()函數,請自行編寫一個my_map()函數實現與map()相同的
#python的map,filter,rece等函數復都是為制了簡化,方便循環list的函數。
#所以如果不用的話,就相當於把for循環展開
L=[1,2,3,4,5]
defmy_map(L):
result=[]
foreinL:
result.append(e*2+1)
returnresult
printmap(lambdax:x*2+1,L)#輸出[3,5,7,9,11]
printmy_map(L)#輸出[3,5,7,9,11]
#不用函數
print[x*2+1forxinL]#輸出[3,5,7,9,11]
#不用函數計算大於等於3的
print[x*2+1forxinLifx>=3]#輸出[7,9,11]
#使用mapfilter計算大於等於3的,
printmap(lambdax:x*2+1,filter(lambdax:x>=3,L))#輸出[7,9,11]
⑽ Python中map()問題
map()是 Python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。
你傳入的 '12345'字元串也是屬於列表。每個元素就是 ['1','2','3','4','5']
所以第一個輸出的無可厚非。
第二個報錯其實原因就是因為你的digits裡面沒有'1'這個key,所以會報錯。
根本不會出現'12345'這個key的。如果想出現,就把代碼修改下
defchar(s):
digits={'0':0,'12345':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
returndigits[s]
list(map(char,['12345','2','3','4','5']))