草纸练习:
l1 = [('a1','a2'),('b1','b2'),('c1','c2')]
l2 = ['a3','b3','c3']
想求结果:[('a1', 'a2', 'a3'), ('b1', 'b2', 'b3'), ('c1', 'c2', 'c3')]
过程如下,几个坑...
In [74]: l1 = [('a1','a2'),('b1','b2'),('c1','c2')]
In [75]: l1
Out[75]: [('a1', 'a2'), ('b1', 'b2'), ('c1', 'c2')]
In [76]: l2 = ['a3','b3','c3']
In [77]: zip(l1)
Out[77]: [(('a1', 'a2'),), (('b1', 'b2'),), (('c1', 'c2'),)]
In [78]: zip(l1,l2)
Out[78]: [(('a1', 'a2'), 'a3'), (('b1', 'b2'), 'b3'), (('c1', 'c2'), 'c3')]
In [79]: map(zip(l1,l2))
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 map(zip(l1,l2))
TypeError: map() requires at least two args
In [80]: mpp(l1,l2)
---------------------------------------------------------------------------
NameError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 mpp(l1,l2)
NameError: name 'mpp' is not defined
In [81]: map(l1,l2)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 map(l1,l2)
TypeError: 'list' object is not callable
In [82]: zip(l1,l2)
Out[82]: [(('a1', 'a2'), 'a3'), (('b1', 'b2'), 'b3'), (('c1', 'c2'), 'c3')]
In [83]: lambda
SyntaxError: invalid syntax
In [84]: lambda:l1
Out[84]: >
In [85]: lambda:l1()
Out[85]: >
In [86]: lambda:l1,啦
SyntaxError: invalid syntax
In [87]: lambda:l1,l2
Out[87]: (>, ['a3', 'b3', 'c3'])
In [88]: lambda:l1,l2()
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 lambda:l1,l2()
TypeError: 'list' object is not callable
In [89]: lambda:l1,l2(1)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 lambda:l1,l2(1)
TypeError: 'list' object is not callable
In [90]: lambda : l
%load_ext
%loadpy
%logoff
%logon
%logstart
%logstate
%logstop
%lsmagic
l
l1
l2
lambda
len
license
list
ll
locals
long
In [90]: lambda lx,ly : [j.append(ly[i]) for i,j in enumerate(lx)]
Out[90]: >
In [91]: lambda lx,ly : [j.append(ly[i]) for i,j in enumerate(lx)](l1,l2)
Out[91]: >
In [92]: g = lambda lx,ly : [j.append(ly[i]) for i,j in enumerate(lx)](l1,l2)
In [93]: g
Out[93]: >
In [94]: g.
g.func_closure
g.func_code
g.func_defaults
g.func_dict
g.func_doc
g.func_globals
g.func_name
In [94]: g()
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 g()
TypeError: () takes exactly 2 arguments (0 given)
In [95]: g(l1,l2)
---------------------------------------------------------------------------
AttributeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 g(l1,l2)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in (lx, ly)
----> 1 g = lambda lx,ly : [j.append(ly[i]) for i,j in enumerate(lx)](l1,l2)
AttributeError: 'tuple' object has no attribute 'append'
In [96]: g = lambda lx,ly : [j.append(ly[i]) for i,j in enumerate(lx)]
In [97]: g.
g.func_closure
g.func_code
g.func_defaults
g.func_dict
g.func_doc
g.func_globals
g.func_name
In [97]: g()
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 g()
TypeError: () takes exactly 2 arguments (0 given)
In [98]: t = ()
In [99]: t.
t.count
t.index
In [99]: t = (1,2)
In [100]: t.
t.count
t.index
In [100]: t+t
Out[100]: (1, 2, 1, 2)
In [101]: g = lambda lx,ly : [j + ly[i] for i,j in enumerate(lx)]
In [102]:
In [102]: g(l1,l2)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 g(l1,l2)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in (lx, ly)
----> 1 g = lambda lx,ly : [j + ly[i] for i,j in enumerate(lx)]
TypeError: can only concatenate tuple (not "str") to tuple
In [103]: def f(l1,l2):
KeyboardInterrupt
In [103]: def f(lx,ly):
KeyboardInterrupt
In [103]: (lambda lx,ly : [j + ly[i] for i,j in enumerate(lx)])(l1,l2)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 (lambda lx,ly : [j + ly[i] for i,j in enumerate(lx)])(l1,l2)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in (lx, ly)
----> 1 (lambda lx,ly : [j + ly[i] for i,j in enumerate(lx)])(l1,l2)
TypeError: can only concatenate tuple (not "str") to tuple
In [104]: (lambda lx,ly : [j + str(ly[i]) for i,j in enumerate(lx)])(l1,l2)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 (lambda lx,ly : [j + str(ly[i]) for i,j in enumerate(lx)])(l1,l2)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in (lx, ly)
----> 1 (lambda lx,ly : [j + str(ly[i]) for i,j in enumerate(lx)])(l1,l2)
TypeError: can only concatenate tuple (not "str") to tuple
In [105]: t
Out[105]: (1, 2)
In [106]: t+t+t
Out[106]: (1, 2, 1, 2, 1, 2)
In [107]: t = ('a','b')
In [108]: t+t+t
Out[108]: ('a', 'b', 'a', 'b', 'a', 'b')
In [109]: t = ('a','b',)
In [110]: t+t+t
Out[110]: ('a', 'b', 'a', 'b', 'a', 'b')
In [111]: (lambda lx,ly : [tuple(j) + str(ly[i]) for i,j in enumerate(lx)])(l1,l2)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 1 (lambda lx,ly : [tuple(j) + str(ly[i]) for i,j in enumerate(lx)])(l1,l2)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in (lx, ly)
----> 1 (lambda lx,ly : [tuple(j) + str(ly[i]) for i,j in enumerate(lx)])(l1,l2)
TypeError: can only concatenate tuple (not "str") to tuple
In [112]: for i in l1:
('a1', 'a2')
('b1', 'b2')
('c1', 'c2')
In [113]: for i in l1:
('a1', 'a2', 'a1', 'a2')
('b1', 'b2', 'b1', 'b2')
('c1', 'c2', 'c1', 'c2')
In [114]: for i in l1:
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 2
print i+''
TypeError: can only concatenate tuple (not "str") to tuple
In [115]: for i in l1:
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 2
print i+('')
TypeError: can only concatenate tuple (not "str") to tuple
In [116]: for i in l1:
('a1', 'a2')
('b1', 'b2')
('c1', 'c2')
In [117]: (lambda lx,ly : [tuple(j) + tuple(ly[i]) for i,j in enumerate(lx)])(l1,l2)
Out[117]: [('a1', 'a2', 'a', '3'), ('b1', 'b2', 'b', '3'), ('c1', 'c2', 'c', '3')]
In [118]: for i in l1:
('a1', 'a2', 'a', '3')
('b1', 'b2', 'a', '3')
('c1', 'c2', 'a', '3')
In [119]: for i in l1:
('a1', 'a2', 'a', '3')
('b1', 'b2', 'a', '3')
('c1', 'c2', 'a', '3')
In [120]: for i in l1:
('a1', 'a2', 'a', '3')
('b1', 'b2', 'a', '3')
('c1', 'c2', 'a', '3')
In [121]: l1
Out[121]: [('a1', 'a2'), ('b1', 'b2'), ('c1', 'c2')]
In [122]: for i in l1:
('a1', 'a2', 'a', '3')
('b1', 'b2', 'a', '3')
('c1', 'c2', 'a', '3')
In [123]: for i in l1:
---------------------------------------------------------------------------
AttributeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 2
print i.append('a3')
AttributeError: 'tuple' object has no attribute 'append'
In [124]: for i in l1:
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 2
print tuple(list(i).append('a3'))
TypeError: 'NoneType' object is not iterable
In [125]: for i in l1:
None
None
None
In [126]: l1
Out[126]: [('a1', 'a2'), ('b1', 'b2'), ('c1', 'c2')]
In [127]: for i in l1:
['a1', 'a2']
['b1', 'b2']
['c1', 'c2']
In [128]: (lambda lx,ly : [list(j).append(ly[i]) for i,j in enumerate(lx)])(l1,l2)
Out[128]: [None, None, None]
In [129]:
In [129]: (lambda lx,ly : [(lambda x,y :x.append(y))(list(j),ly[i]) for i,j in enumerate(lx)])(l1,l2)
Out[129]: [None, None, None]
In [130]: for i in l1:
---------------------------------------------------------------------------
AttributeError
Traceback (most recent call last)
/home/zhipeng/zhangzhipeng_ssh/qingting/shazam/make_table/ in ()
----> 2
print i.append('aa')
AttributeError: 'tuple' object has no attribute 'append'
In [131]: for i in l1:
('a1', 'a2', 'a', 'a')
('b1', 'b2', 'a', 'a')
('c1', 'c2', 'a', 'a')
In [132]: for i in l1:
('a1', 'a2', 'aa')
('b1', 'b2', 'aa')
('c1', 'c2', 'aa')
In [133]: (lambda lx,ly : [(lambda x,y :x.append(y))(list(j),ly[i]) for i,j in enumerate(lx)])(l1,l2)
Out[133]: [None, None, None]
In [134]: (lambda lx,ly : [tuple(j) + tuple(ly[i], ) for i,j in enumerate(lx)])(l1,l2)
Out[134]: [('a1', 'a2', 'a', '3'), ('b1', 'b2', 'b', '3'), ('c1', 'c2', 'c', '3')]
In [135]: (lambda lx,ly : [tuple(j) + (ly[i], ) for i,j in enumerate(lx)])(l1,l2)
Out[135]: [('a1', 'a2', 'a3'), ('b1', 'b2', 'b3'), ('c1', 'c2', 'c3')]
In [136]: tuple('aa')
Out[136]: ('a', 'a')
In [137]: (lambda lx,ly : [tuple(j) + (ly[i], ) for i,j in enumerate(lx)])(l1,l2)
Out[137]: [('a1', 'a2', 'a3'), ('b1', 'b2', 'b3'), ('c1', 'c2', 'c3')]