Hướng dẫn how do you pass multiple arguments in pool map python? - làm thế nào để bạn vượt qua nhiều đối số trong python map pool?
Python 3.3 bao gồm phương thức 6:
Cho các phiên bản cũ hơn:
Đầu ra
Lưu ý cách 7 và 8 được sử dụng ở đây.
Do lỗi được đề cập bởi @unutbu, bạn không thể sử dụng 9 hoặc các khả năng tương tự trên Python 2.6, do đó, chức năng trình bao bọc đơn giản 0 nên được xác định rõ ràng. Xem thêm Cách giải quyết được đề xuất bởi 1.Đã trả lời ngày 26 tháng 3 năm 2011 lúc 17:24Mar 26, 2011 at 17:24
JFSJFSjfs 385K183 Huy hiệu vàng949 Huy hiệu bạc1624 Huy hiệu đồng183 gold badges949 silver badges1624 bronze badges 14 Câu trả lời cho điều này là phụ thuộc vào phiên bản và tình huống. Câu trả lời chung nhất cho các phiên bản gần đây của Python (kể từ 3.3) được mô tả lần đầu tiên dưới đây bởi J.F. Sebastian.1 Nó sử dụng phương pháp 2, chấp nhận một chuỗi các bộ đếm đối số. Sau đó, nó tự động giải nén các đối số khỏi mỗi tuple và chuyển chúng đến chức năng đã cho:
Đối với các phiên bản trước của Python, bạn sẽ cần viết một hàm trợ giúp để giải nén các đối số một cách rõ ràng. Nếu bạn muốn sử dụng 3, bạn cũng sẽ cần viết trình bao bọc để biến 4 thành trình quản lý ngữ cảnh. (Cảm ơn Muon đã chỉ ra điều này.)
Trong các trường hợp đơn giản hơn, với một đối số thứ hai cố định, bạn cũng có thể sử dụng 5, nhưng chỉ trong Python 2.7+.
1. Phần lớn điều này được truyền cảm hứng từ câu trả lời của anh ấy, có lẽ nên được chấp nhận thay thế. Nhưng vì cái này bị mắc kẹt ở đầu, nên có vẻ tốt nhất để cải thiện nó cho độc giả trong tương lai. Đã trả lời ngày 26 tháng 3 năm 2011 lúc 14:36Mar 26, 2011 at 14:36
người gửisenderle Huy hiệu vàng 140K3535 gold badges206 silver badges231 bronze badges 9 Tôi nghĩ rằng dưới đây sẽ tốt hơn:
Đầu ra
Lưu ý cách 7 và 8 được sử dụng ở đây.Jan 15, 2014
at 6:01
Do lỗi được đề cập bởi @unutbu, bạn không thể sử dụng 9 hoặc các khả năng tương tự trên Python 2.6, do đó, chức năng trình bao bọc đơn giản 0 nên được xác định rõ ràng. Xem thêm Cách giải quyết được đề xuất bởi 1.imotaiĐã trả lời ngày 26 tháng 3 năm 2011 lúc 17:241 gold badge11 silver badges9 bronze badges 6 JFSJFSPython 3.3+ with 6
Result:
385K183 Huy hiệu vàng949 Huy hiệu bạc1624 Huy hiệu đồng Câu trả lời cho điều này là phụ thuộc vào phiên bản và tình huống. Câu trả lời chung nhất cho các phiên bản gần đây của Python (kể từ 3.3) được mô tả lần đầu tiên dưới đây bởi J.F. Sebastian.1 Nó sử dụng phương pháp 2, chấp nhận một chuỗi các bộ đếm đối số. Sau đó, nó tự động giải nén các đối số khỏi mỗi tuple và chuyển chúng đến chức năng đã cho:constant value passed as an argument: 0Đối với các phiên bản trước của Python, bạn sẽ cần viết một hàm trợ giúp để giải nén các đối số một cách rõ ràng. Nếu bạn muốn sử dụng 3, bạn cũng sẽ cần viết trình bao bọc để biến 4 thành trình quản lý ngữ cảnh. (Cảm ơn Muon đã chỉ ra điều này.)return something: 1Trong các trường hợp đơn giản hơn, với một đối số thứ hai cố định, bạn cũng có thể sử dụng 5, nhưng chỉ trong Python 2.7+.1. Phần lớn điều này được truyền cảm hứng từ câu trả lời của anh ấy, có lẽ nên được chấp nhận thay thế. Nhưng vì cái này bị mắc kẹt ở đầu, nên có vẻ tốt nhất để cải thiện nó cho độc giả trong tương lai.Mar 10, 2015 at 22:24
user136036user136036user136036 Đã trả lời ngày 26 tháng 3 năm 2011 lúc 14:366 gold badges43 silver badges46 bronze badges 2 người gửi 2
lpd11 Huy hiệu vàng 140K351 silver badge7 bronze badges Tôi nghĩ rằng dưới đây sẽ tốt hơn:Dec 25, 2017 at 11:44
Đã trả lời ngày 15 tháng 1 năm 2014 lúc 6:01Dane Lee imotaiimotai11 silver badges14 bronze badges 4 1.9161 Huy hiệu vàng11 Huy hiệu bạc9 Huy hiệu đồng Sử dụng Python 3.3+ với 6 3Bạn cũng có thể zip () thêm đối số nếu bạn thích: 7 4Trong trường hợp bạn muốn có một giá trị không đổi được thông qua như một đối số: Trong trường hợp chức năng của bạn sẽ trả về một cái gì đó: 5
Điều này đưa ra một danh sách với các giá trị được trả về.Jan 22, 2014 at 20:05
Đã trả lời ngày 10 tháng 3 năm 2015 lúc 22:24zeehio 10.1k6 Huy hiệu vàng43 Huy hiệu bạc46 Huy hiệu đồng2 gold badges37 silver badges46 bronze badges 0 Cách thực hiện nhiều đối số: 1331 Huy hiệu bạc7 Huy hiệu đồng 6Đã trả lời ngày 25 tháng 12 năm 2017 lúc 11:44 7
Dane Leedane LeeJan 20, 2014 at 20:37
1.85411 huy hiệu bạc14 Huy hiệu đồngMike McKerns Đã biết về itertools trong câu trả lời của J.F. của các đối số vị trí.8 gold badges113 silver badges138 bronze badges 4 Cài đặt 8Đầu ra 9
Cách song song hóa:May 23, 2017 at 10:11
Tôi đã tải lên Parmap lên Pypi và một kho lưu trữ GitHub.xmduhan Ví dụ, câu hỏi có thể được trả lời như sau:11 silver badges14 bronze badges Đã trả lời ngày 22 tháng 1 năm 2014 lúc 20:05 Zeehiozeehio3,8742 huy hiệu vàng37 Huy hiệu bạc46 Huy hiệu đồng
Có một ngã ba 1 được gọi là Pathos (Lưu ý: Sử dụng phiên bản trên GitHub) không cần 0 - các hàm bản đồ phản ánh API cho bản đồ của Python, do đó MAP có thể có nhiều đối số.Mar 13, 2014 at 21:55
Với 3, bạn cũng thường có thể thực hiện đa xử lý trong trình thông dịch, thay vì bị kẹt trong khối 4. Pathos là do một bản phát hành, sau khi cập nhật nhẹ - chủ yếu là chuyển đổi sang Python 3.x.Adobe
4 Đã trả lời ngày 20 tháng 1 năm 2014 lúc 20:37decorator instead of writing a wrapper function by hand. Especially when you have a lot of functions to map, a decorator will save your time by avoiding writing a wrapper for every function. Usually a decorated function is not picklable, however we may use 7 to get around it. More discussions can be found here.Mike McKernsmike McKerns 132.1k8 Huy hiệu vàng113 Huy hiệu bạc138 Huy hiệu đồng 2Một giải pháp tốt hơn cho Python & NBSP; 2:
Đã trả lời ngày 23 tháng 5 năm 2017 lúc 10:11May 29, 2016 at 1:17
xmduhanxmduhanSyrtis Major 83011 Huy hiệu bạc14 Huy hiệu đồng1 gold badge27 silver badges39 bronze badges 3 Một cách khác là chuyển danh sách các danh sách cho thói quen một đối số: 3Sử dụng chức năng 9 với danh sách các đối số 0, 1 và 2 như sau: 4Đã trả lời ngày 27 tháng 6 năm 2014 lúc 7:42Jun 27, 2014 at 7:42
M. Toyam. ToyaM. Toya 5957 Huy hiệu bạc23 Huy hiệu Đồng7 silver badges23 bronze badges Một giải pháp thay thế đơn giản khác là bọc các tham số chức năng của bạn trong một bộ thuật và sau đó bọc các tham số nên được truyền trong các bộ dữ liệu. Điều này có lẽ không lý tưởng khi xử lý các phần lớn dữ liệu. Tôi tin rằng nó sẽ tạo ra các bản sao cho mỗi tuple. 5Cung cấp đầu ra theo một số thứ tự ngẫu nhiên: 6Đã trả lời ngày 21 tháng 11 năm 2016 lúc 7:16Nov 21, 2016 at 7:16
Alex Klibiszalex KlibiszAlex Klibisz 1.2841 Huy hiệu vàng14 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge14 silver badges20 bronze badges 1 Đây là một cách khác để làm điều đó rằng IMHO đơn giản và thanh lịch hơn bất kỳ câu trả lời nào khác được cung cấp. Chương trình này có một chức năng lấy hai tham số, in chúng ra và cũng in tổng số: 7đầu ra là: 8Xem tài liệu Python để biết thêm thông tin: https://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.pool Đặc biệt, hãy chắc chắn kiểm tra chức năng 0.Tôi đang sử dụng Python 3.6, tôi không chắc liệu điều này có hoạt động với các phiên bản Python cũ hơn không Tại sao không có một ví dụ rất đơn giản như thế này trong tài liệu, tôi không chắc chắn. Đã trả lời ngày 24 tháng 1 năm 2020 lúc 19:37Jan 24, 2020 at 19:37
Cdahmscdahmscdahms 3.0749 Huy hiệu vàng44 Huy hiệu bạc71 Huy hiệu đồng9 gold badges44 silver badges71 bronze badges Từ Python 3.4.4, bạn có thể sử dụng MultiProcessing.get_context () để có được đối tượng ngữ cảnh để sử dụng nhiều phương thức bắt đầu: 9Hoặc bạn chỉ đơn giản là thay thế 0with: 1
Đã trả lời ngày 27 tháng 5 năm 2016 lúc 10:52May 27, 2016 at 10:52
Tung Nguyễn năng NguyễnTung Nguyen 1.4282 Huy hiệu vàng17 Huy hiệu bạc13 Huy hiệu đồng2 gold badges17 silver badges13 bronze badges Trong tài liệu chính thức nói rằng nó chỉ hỗ trợ một đối số có thể lặp lại. Tôi thích sử dụng Ứng dụng_async trong những trường hợp như vậy. Trong trường hợp của bạn, tôi sẽ làm: 2Đã trả lời ngày 2 tháng 4 năm 2017 lúc 6:34Apr 2, 2017 at 6:34
roj4sroj4sroj4s 2211 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges 1 Có nhiều câu trả lời ở đây, nhưng dường như không có câu trả lời nào cung cấp mã tương thích Python 2/3 sẽ hoạt động trên bất kỳ phiên bản nào. Nếu bạn muốn mã của mình chỉ hoạt động, điều này sẽ hoạt động cho phiên bản Python: 3Sau đó, bạn có thể sử dụng đa xử lý Python 3 thông thường, tuy nhiên bạn thích. Ví dụ: 4sẽ làm việc trong Python 2 hoặc Python 3. Đã trả lời ngày 16 tháng 2 năm 2019 lúc 4:56Feb 16, 2019 at 4:56
Cgnorthcuttcgnorthcuttcgnorthcutt 3.64233 Huy hiệu bạc39 Huy hiệu đồng33 silver badges39 bronze badges 5Đã trả lời ngày 15 tháng 10 năm 2018 lúc 23:21Oct 15, 2018 at 23:21
JaimejaimeJaime Huy hiệu đồng 2111 bronze badge
Đây là một ví dụ về thói quen mà tôi sử dụng để chuyển nhiều đối số cho hàm một đối số được sử dụng trong Fork.imap Fork: 6Đã trả lời ngày 23 tháng 1 năm 2019 lúc 11:53Jan 23, 2019 at 11:53
Đây có thể là một lựa chọn khác. Bí quyết là trong hàm 4 trả về một hàm khác được truyền vào 5. Mã bên dưới đọc một mảng đầu vào và cho mỗi phần tử (duy nhất) trong đó, trả về số lần (tức là số lượng) phần tử đó xuất hiện trong mảng, ví dụ nếu đầu vào là 7Sau đó không xuất hiện 6 lần và một lần 3 lần 8Bạn nên nhận được: 9Đã trả lời ngày 15 tháng 11 năm 2020 lúc 13:26Nov 15, 2020 at 13:26
AenaonaenaonAenaon 2.9094 Huy hiệu vàng28 Huy hiệu bạc56 Huy hiệu Đồng4 gold badges28 silver badges56 bronze badges 0Đã trả lời ngày 9 tháng 7 năm 2021 lúc 14:47Jul 9, 2021 at 14:47
1 Lưu trữ tất cả các đối số của bạn như một mảng các bộ dữ liệu. Ví dụ nói rằng bạn thường gọi chức năng của mình là: 1Thay vào đó hãy vượt qua một tuple và giải nén các đối số: 2Xây dựng bộ tuple bằng cách sử dụng một vòng lặp trước: 3Sau đó thực thi tất cả bằng cách sử dụng bản đồ bằng cách chuyển mảng của bộ dữ liệu: 4Tôi biết Python có 6 và 7 để giải nén, nhưng tôi chưa thử chúng.Cũng tốt hơn để sử dụng tương lai đồng thời thư viện cấp cao hơn so với thư viện đa xử lý cấp thấp.
Đã trả lời ngày 19 tháng 6 năm 2021 lúc 15:16Jun 19, 2021 at 15:16
Đối với Python & nbsp; 2, bạn có thể sử dụng thủ thuật này 5
Đã trả lời ngày 18 tháng 5 năm 2018 lúc 4:06May 18, 2018 at 4:06
Hz Thượng Hải ThươngHz Shang Huy hiệu đồng 951 Bạc8 Huy hiệu Đồng1 silver badge8 bronze badges 1 Bản đồ có thể lấy nhiều đối số không?Chức năng bản đồ chỉ hỗ trợ các chức năng ánh xạ có một đối số duy nhất.Điều này có nghĩa là nếu bạn muốn ánh xạ qua một hàm mong đợi nhiều đối số, bạn không thể sử dụng nó.. This means that if you want to map over a function which expects multiple arguments you can't use it.
Bản đồ nhóm đa xử lý là gì?Đa xử lý.hồ bơi.Pool Process Pool cung cấp một phiên bản của hàm Bản đồ () trong đó hàm đích được gọi cho từng mục trong song song được cung cấp.Một tương đương song song của hàm tích hợp bản đồ () [[]].Nó chặn cho đến khi kết quả đã sẵn sàng.provides a version of the map() function where the target function is called for each item in the provided iterable in parallel. A parallel equivalent of the map() built-in function […]. It blocks until the result is ready.
Làm thế nào để bạn sử dụng Starmap đa xử lý?Bạn có thể ánh xạ một hàm có nhiều đối số cho các tác vụ trong nhóm quy trình thông qua phương thức pool starmap () ... task(1,2). task(3,4). task(5,6). Python đa xử lý hồ bơi là gì?Nhóm đa xử lý Python có thể được sử dụng để thực hiện song song một hàm trên nhiều giá trị đầu vào, phân phối dữ liệu đầu vào trên các quy trình (song song dữ liệu).can be used for parallel execution of a function across multiple input values, distributing the input data across processes (data parallelism). |