具有以下代碼行,它從文件中讀取字對,將它們拆分並返回一個元組,其中每個元素的第一個索引元組是第一個或第二個單詞。 例如,
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. 如何使用帶有不可迭代且可迭代的參數集的pythons映射?
- 3. Angular 4 http帶有多個參數到Spring請求映射
- 4. 在python中使用帶有多個參數列表的併發映射
- 5. 帶有列映射的MySqlBulkLoader?
- 6. PrettyFaces和帶有變量ammount的路徑參數的URL映射
- 7. 在多個代碼帶來參數
- 8. 帶多個參數的ValueConverter
- 9. 帶多個參數的performSelectorInBackground
- 10. 帶有多個參數的JNI方法?
- 11. 帶有多個參數的Bash腳本
- 12. 帶有多個參數的PHP preg_replace_callback
- 13. 帶DTO的MyBatis映射器
- 14. 路由帶有多個參數
- 15. 帶有openmp的zip迭代器不會並行
- 16. 帶有逆映射的ORMLite外部@DatabaseField?
- 17. 帶有「:」鍵的vim鍵盤映射
- 18. 帶有子類型的雙向多對多JPA映射
- 19. 帶有參數
- 20. 帶有FLEX代碼的函數參數
- 21. 帶數據映射器的CodeIgniter ORM
- 22. 不帶參數
- 23. 帶或不帶尾隨斜槓的url映射
- 24. 帶多個參數的函數
- 25. 帶自定義參數的推土機映射
- 26. 帶破折號的名稱映射到操作參數?
- 27. 帶額外參數的映射分區pyspark
- 28. const_reference或迭代器的映射(當沒有實際迭代時)
- 29. MyBatis select語句不帶結果映射
- 30. jquery帶有警報的對象迭代
這對Python來說不是很習慣(對於大的輸入文件可能不會很好)。你是否從另一種語言移植? – 2012-08-13 09:08:08
請不要一次提出兩個問題。一次創建兩個問題是可以的。如果您提供了輸入和預期輸出的明確示例,您的第一個問題將會大大改善。 – 2012-08-13 09:10:35
其中之一,我對你的第一個問題的回答可能是現貨,但我的第二個答案不足以滿足你的需求。另一個答案可能會爲你的第二個問題提供最好的解決方案,但是完全沒有答案。哪一個會是你接受的最佳答案呢?你如何期待人們投票? – 2012-08-13 09:14:58