为什么我的python lambda函数不工作?



我正在从文档文件优化我的数据库填充代码,我正在通过用映射的lambda函数替换for循环来做到这一点。这是工作,然后停了下来。这个例子:

rawdata1 = sorted(map(lambda i: rawdata1.append(i.split('$$$')), rawdata))
# for i in rawdata:
#     rawdata1.append(i.split('$$$'))

显示以下错误:

TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'

但是当我取消for循环注释并注释lambda时,一切都很好。我做错了什么?

.append()是一个就地更新,并返回None,因此您当前的生成器正在创建一个None列表,无法与sorted()进行比较。

,不谈,你不需要记录你的新分裂物品map()的发电机被送入sorted()

试题:

>>> my_list = ["a,a", "b,b", "c,c", "a,b"]
>>> sorted(map(lambda i: i.split(","), my_list))
[['a', 'a'], ['a', 'b'], ['b', 'b'], ['c', 'c']]

或者使用生成器表达式(我的首选方法):

>>> my_list = ["a,a", "b,b", "c,c", "a,b"]
>>> sorted(i.split(",") for i in my_list)
[['a', 'a'], ['a', 'b'], ['b', 'b'], ['c', 'c']]

相关内容

  • 没有找到相关文章

最新更新