具有以下代码行,它从文件中读取字对,将它们拆分并返回一个元组,其中每个元素的第一个索引元组是第一个或第二个单词。 例如,
Bob, Smith
将分别转换为[(Bob, Smith)]
和[(Smith, Bob)]
。我将它映射到g.readlines()
中的每一对。带有多个参数并迭代不带“for”的“映射”想知道是否完全可以通过秒参数
flip = True
,变成一个更通用的word_flip()函数,它可以与map一起使用吗?first_word_is_first = map(first_second_split, g.readlines()) first_word_is_second = map(second_first_split, g.readlines())
对于一个功能更强大的方式随机的问题,如果我给出一个字符串,我想根据每个字(即
Alex Smith AGE 35 420
)的属性来划分该字符串是有一个功能更强大的方式除了重复通过string.split()
并将行划分为str变量,name
,age
,room_number
或使用正则表达式,还可以解决这个问题?是否可以使用map,filter或itertools?最好通过一次字符串。
回答
是的,你可以使用一个
functools.partial
在map()
使用时要额外的参数添加到您的功能。from functools import partial first_word_is_first = map(partial(word_flip, flip=False), g.readlines()) first_word_is_second = map(partial(word_flip, flip=True), g.readlines())
这将是更容易使用,虽然列表理解:
first_word_is_first = [word_flip(l, flip=False) for l in g.readlines()] first_word_is_second = [word_flip(l, flip=True) for l in g.readlines()]
您的字符串的结构(空间这两个领域之间和内部的字段),你将不得不使用的方法像正则表达式或专用函数的方法来分割字段。
2:从方法调用
name, surname, n, age, room = 'Alex Smith AGE 35 420'.split()
返回多个结果。
呃,当我对两个问题发表评论时没有看到您的答案......感谢您证明这一点! :-P – 2012-08-13 09:18:02
我不知道我的答案证明了什么。这是非常愚蠢的:P – fiatjaf 2012-10-19 00:00:20
请参阅[我对OP的评论](http://stackoverflow.com/questions/11931140/python-map-with-more-than-one-parameter-and-iterating-without-for/ 11931236#comment15890673_11931140)要求他坚持每个帖子一个问题。 – 2012-10-19 05:57:38
- 1. 带删除的C++映射迭代
- 2. 映射到带有参数的文件
- 3. 如何使用带有不可迭代且可迭代的参数集的pythons映射?
- 4. Angular 4 http带有多个参数到Spring请求映射
- 5. 在python中使用带有多个参数列表的并发映射
- 6. 带列表参数的映射函数
- 7. 带有几个关系和映射参数的JPA查询
- 8. 带有列映射的MySqlBulkLoader?
- 9. 映射迭代
- 10. 带有多个参数的NSIS函数
- 11. PrettyFaces和带有变量ammount的路径参数的URL映射
- 12. web.xml中带有参数的REST URL映射
- 13. 带弱密钥的并发映射
- 14. 在多个代码带来参数
- 15. 带多个参数的ValueConverter
- 16. 带多个参数的performSelectorInBackground
- 17. 带有多个参数的PHP preg_replace_callback
- 18. 带有多个参数的JNI方法?
- 19. 带有多个参数的Bash脚本
- 20. 带有多个参数的str_replace
- 21. Typescript,带有JQuery.on的多个参数
- 22. 带有多个参数的PHP isset()
- 23. 带有多个参数的rspec redirect_to
- 24. 迭代谷歌多重映射作为参数传递
- 25. 映射多对多关系(带外键参考)
- 26. 通过NSMutableIndexSet不带有块迭代
- 27. 重写规则映射到URL参数不带扩展
- 28. 带有父代码的多列参考
- 29. 带DTO的MyBatis映射器
- 30. 带注释映射的LocalSessionFactoryBean
这对Python来说不是很习惯(对于大的输入文件可能不会很好)。你是否从另一种语言移植? – 2012-08-13 09:08:08
请不要一次提出两个问题。一次创建两个问题是可以的。如果您提供了输入和预期输出的明确示例,您的第一个问题将会大大改善。 – 2012-08-13 09:10:35
其中之一,我对你的第一个问题的回答可能是现货,但我的第二个答案不足以满足你的需求。另一个答案可能会为你的第二个问题提供最好的解决方案,但是完全没有答案。哪一个会是你接受的最佳答案呢?你如何期待人们投票? – 2012-08-13 09:14:58