Hướng dẫn how do you product an element in a list python? - làm thế nào để bạn tạo ra một phần tử trong một python danh sách?
193 Show Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Có một cách ngắn gọn, hiệu quả hơn hoặc đơn giản là pythonic để làm như sau?
EDIT: Tôi thực sự thấy rằng điều này nhanh hơn một chút so với sử dụng toán tử.mul:
đưa cho tôi
QNEILL 1.62313 huy hiệu bạc18 Huy hiệu đồng13 silver badges18 bronze badges hỏi ngày 20 tháng 1 năm 2010 lúc 20:40Jan 20, 2010 at 20:40
Simon Watkinssimon WatkinsSimon Watkins 1.9652 Huy hiệu vàng12 Huy hiệu bạc7 Huy hiệu đồng2 gold badges12 silver badges7 bronze badges 12 Mà không sử dụng Lambda:
Nó tốt hơn và nhanh hơn. Với Python 2.7.5
Trong cấu hình sau:
Kết quả với Python 2.7.5 | 1 | 2 | 3 | 4 | -------+-----------+-----------+-----------+-----------+ A 20.8 µs 13.3 µs 22.6 µs 39.6 µs B 106 µs 95.3 µs 5.92 µs 26.1 µs C 4.34 ms 3.51 ms 16.7 µs 38.9 µs D 46.6 ms 38.5 ms 180 µs 216 µs Kết quả: 0 là nhanh nhất, nếu bạn sử dụng 1 làm cấu trúc dữ liệu (18 lần cho mảng nhỏ, 250x cho mảng lớn)với Python 3.3.2: | 1 | 2 | 3 | 4 | -------+-----------+-----------+-----------+-----------+ A 23.6 µs 12.3 µs 68.6 µs 84.9 µs B 133 µs 107 µs 7.42 µs 27.5 µs C 4.79 ms 3.74 ms 18.6 µs 40.9 µs D 48.4 ms 36.8 ms 187 µs 214 µs Python 3 có chậm hơn không?
Đã trả lời ngày 20 tháng 1 năm 2010 lúc 21:33Jan 20, 2010 at 21:33
Ruggero Turraruggero TurraRuggero Turra 16.1K14 Huy hiệu vàng86 Huy hiệu bạc135 Huy hiệu đồng14 gold badges86 silver badges135 bronze badges 9
Đã trả lời ngày 20 tháng 1 năm 2010 lúc 20:42Jan 20, 2010 at 20:42
Johannes Charrajohannes CharraJohannes Charra 28.7K5 Huy hiệu vàng41 Huy hiệu bạc 50 Huy hiệu Đồng5 gold badges41 silver badges50 bronze badges 4 Bắt đầu 2, hàm 3 đã được đưa vào mô -đun 4 trong thư viện tiêu chuẩn:
trả về sản phẩm của giá trị 5 (mặc định: 1) nhiều lần số lượng của các số:
Lưu ý rằng nếu có thể trống, điều này sẽ tạo ra 6 (hoặc giá trị 5 nếu được cung cấp).Đã trả lời ngày 14 tháng 2 năm 2019 lúc 19:12Feb 14, 2019 at 19:12
Xavier Guihotxavier GuihotXavier Guihot 47.8K21 Huy hiệu vàng266 Huy hiệu bạc170 Huy hiệu Đồng21 gold badges266 silver badges170 bronze badges 0 Nếu bạn chỉ có số trong danh sách của mình: 0Chỉnh sửa: Như được chỉ ra bởi @off99555, điều này không hoạt động cho kết quả số nguyên lớn, trong trường hợp nó trả về kết quả của loại 8 trong khi giải pháp của Ian Clelland dựa trên 9 và 0 hoạt động cho kết quả số nguyên lớn vì nó trả về 1.Đã trả lời ngày 9 tháng 12 năm 2012 lúc 21:47Dec 9, 2012 at 21:47
Andre Holznerandre HolznerAndre Holzner Huy hiệu vàng 18K653 Huy hiệu bạc62 Huy hiệu Đồng6 gold badges53 silver badges62 bronze badges 4 Tốt nếu bạn thực sự muốn làm cho nó một dòng mà không nhập bất cứ điều gì bạn có thể làm: 1Nhưng đừng. Đã trả lời ngày 21 tháng 8 năm 2015 lúc 3:49Aug 21, 2015 at 3:49
2 Tôi nhớ một số cuộc thảo luận dài trên comp.lang.python (xin lỗi, quá lười để sản xuất con trỏ bây giờ) kết luận rằng định nghĩa 2 ban đầu của bạn là pythonic nhất.your original 2 definition is the most
Pythonic.Lưu ý rằng đề xuất không phải là viết một vòng lặp mỗi khi bạn muốn làm điều đó, mà là viết một chức năng một lần (cho mỗi loại giảm) và gọi nó là cần thiết! Các chức năng giảm gọi là rất pythonic - nó hoạt động ngọt ngào với các biểu thức của máy phát, và kể từ khi giới thiệu thành công của 3, Python tiếp tục phát triển các chức năng giảm tích hợp ngày càng nhiều - 4 và 5 là những bổ sung mới nhất ...Kết luận này là chính thức - 6 đã bị xóa khỏi tích hợp trong Python 3.0, nói rằng:
Xem thêm Số phận của giảm () trong Python 3000 để biết trích dẫn hỗ trợ từ Guido (và một số bình luận ít hỗ trợ của Lispers đọc blog đó). P.S. Nếu tình cờ bạn cần 2 cho tổ hợp, xem 9 (mới 2.6).1 2Đã trả lời ngày 20 tháng 1 năm 2010 lúc 21:38Jan 20, 2010 at 21:38
Ian Clellandian ClellandIan Clelland 42K8 Huy hiệu vàng84 Huy hiệu bạc87 Huy hiệu đồng8 gold badges84 silver badges87 bronze badges 4 Tôi đã thử nghiệm các giải pháp khác nhau với perfplot (một dự án nhỏ của tôi) và thấy rằng 3cho đến nay là giải pháp nhanh nhất (nếu danh sách không ngắn lắm). Mã để tái tạo lô: 4Đã trả lời ngày 22 tháng 3 năm 2019 lúc 10:13Mar 22, 2019 at 10:13
Nico Schlömernico SchlömerNico Schlömer 49K24 Huy hiệu vàng186 Huy hiệu bạc225 Huy hiệu Đồng24 gold badges186 silver badges225 bronze badges 0 Mục đích của câu trả lời này là cung cấp một tính toán hữu ích trong một số trường hợp nhất định - cụ thể là khi a) có một số lượng lớn các giá trị được nhân lên sao cho sản phẩm cuối cùng có thể cực kỳ lớn hoặc cực kỳ nhỏ, và b) bạn không ' T thực sự quan tâm đến câu trả lời chính xác, nhưng thay vào đó có một số trình tự và muốn có thể đặt hàng chúng dựa trên sản phẩm của mỗi người. Nếu bạn muốn nhân các yếu tố của danh sách, trong đó L là danh sách, bạn có thể làm: 5Bây giờ, cách tiếp cận đó không thể đọc được như 6Nếu bạn là một nhà toán học không quen thuộc với giảm () thì điều ngược lại có thể đúng, nhưng tôi sẽ không khuyên sử dụng nó trong những trường hợp bình thường. Nó cũng không thể đọc được hơn hàm sản phẩm () được đề cập trong câu hỏi (ít nhất là đối với các nhà không phải là người nhận thức). Tuy nhiên, nếu bạn đã từng ở trong tình huống mà bạn có nguy cơ tăng hoặc tràn, chẳng hạn như trong 7và mục đích của bạn là so sánh các sản phẩm của các chuỗi khác nhau thay vì biết các sản phẩm là gì, sau đó 8là con đường để đi bởi vì hầu như không thể có một vấn đề trong thế giới thực, trong đó bạn sẽ tràn hoặc tràn ngập phương pháp này. (Kết quả của tính toán đó càng lớn thì sản phẩm sẽ càng lớn nếu bạn có thể tính toán nó.) Đã trả lời ngày 2 tháng 2 năm 2012 lúc 15:07Feb 2, 2012 at 15:07
Garyrobgaryrobgaryrob 5687 Huy hiệu bạc17 Huy hiệu đồng7 silver badges17 bronze badges 1 Tôi ngạc nhiên là không ai đề xuất sử dụng 0 với 9. Điều này tránh sử dụng 0, khác với Python 2 và 3 (do nhập khẩu 3 cần thiết cho Python 3), và hơn nữa được coi là không pythonic bởi chính Guido van Rossum: 9Example: 0Đã trả lời ngày 25 tháng 5 năm 2017 lúc 12:15May 25, 2017 at 12:15
Chris_RandsChris_RandsChris_Rands 36,5K13 Huy hiệu vàng79 Huy hiệu bạc110 Huy hiệu đồng13 gold badges79 silver badges110 bronze badges Một lựa chọn là sử dụng 4 và 5 hoặc 6. Tôi cũng đã thực hiện một hoặc hai điều chỉnh nhỏ vào mã của bạn (ít nhất là trong Python 3, "Danh sách" là một từ khóa không nên được sử dụng cho một tên biến): 1Đối với mục đích thời gian, bạn cần chạy một lần để biên dịch chức năng trước tiên bằng Numba. Nói chung, hàm sẽ được biên dịch ngay lần đầu tiên nó được gọi, và sau đó được gọi từ bộ nhớ sau đó (nhanh hơn). 2Bây giờ khi bạn thực thi mã của mình, nó sẽ chạy với phiên bản biên dịch của hàm. Tôi đã hẹn giờ bằng cách sử dụng máy tính xách tay Jupyter và hàm ma thuật 7: 3Lưu ý rằng trên máy của tôi, chạy Python 3.5, vòng lặp Python 8 gốc thực sự là nhanh nhất. Có thể có một mẹo ở đây khi nói đến việc đo lường hiệu suất được trang trí numba với máy tính xách tay Jupyter và hàm ma thuật 7. Tôi không chắc chắn rằng thời gian trên là chính xác, vì vậy tôi khuyên bạn nên dùng thử trên hệ thống của bạn và xem Numba có tăng hiệu suất không.Đã trả lời ngày 7 tháng 1 năm 2019 lúc 19:45Jan 7, 2019 at 19:45
EngineeroEngineeroEngineero 11.7K5 Huy hiệu vàng51 Huy hiệu bạc73 Huy hiệu đồng5 gold badges51 silver badges73 bronze badges Cách nhanh nhất tôi tìm thấy là, sử dụng trong khi: 4Và thời gian là: 5Đã trả lời ngày 20 tháng 9 năm 2018 lúc 16:18Sep 20, 2018 at 16:18
1 Python 3 Kết quả cho các bài kiểm tra của OP: (tốt nhất 3 cho mỗi lần) 6
Đã trả lời ngày 22 tháng 10 năm 2019 lúc 11:23Oct 22, 2019 at 11:23
Tôi không chắc chắn về cách nhanh nhất, nhưng đây là mã ngắn để có được sản phẩm của bất kỳ bộ sưu tập nào mà không cần nhập bất kỳ thư viện hoặc mô -đun nào. 7Đã trả lời ngày 2 tháng 7 năm 2021 lúc 10:04Jul 2, 2021 at 10:04
Đây là mã: 8
Xavier Guihot 47.8K21 Huy hiệu vàng266 Huy hiệu bạc170 Huy hiệu Đồng21 gold badges266 silver badges170 bronze badges Đã trả lời ngày 18 tháng 7 năm 2021 lúc 2:02Jul 18, 2021 at 2:02
Điều này cũng hoạt động mặc dù gian lận của nó 9
Boppreh 6.3993 Huy hiệu vàng31 Huy hiệu bạc65 Huy hiệu Đồng3 gold badges31 silver badges65 bronze badges Đã trả lời ngày 28 tháng 2 năm 2013 lúc 18:30Feb 28, 2013 at 18:30
1 Làm thế nào để bạn tạo ra một sản phẩm trong Python?Example:.. # Ví dụ chương trình Python để tìm sản phẩm của các yếu tố từ một điều khác. Nhập toán .. # Một python tuple. Trình tự = (1, 1.2, 2, 2.2, 3, 3.2) ;. # Tìm sản phẩm của các phần tử của tuple với giá trị sản phẩm bắt đầu là 4. sản phẩm = math.prod (trình tự, start = 4) ;. in ("Sản phẩm:"); In (sản phẩm) ;. Làm thế nào để bạn nhân hai yếu tố trong danh sách Python?Nhân hai danh sách sử dụng cho vòng lặp qua cho vòng lặp, chúng ta có thể lặp lại trong danh sách.Tương tự, với mỗi lần lặp, chúng ta có thể nhân các yếu tố từ cả hai danh sách.Đối với mục đích này, chúng ta có thể sử dụng chức năng zip.Hàm zip () trong Python có thể kết hợp nội dung từ 2 hoặc nhiều vòng lặp.using for loop
Through for loop, we can iterate through the list. Similarly, with every iteration, we can multiply the elements from both lists. For this purpose, we can use Zip Function. The zip() function in python can combine the contents of 2 or more iterables.
Làm thế nào để bạn nhân tất cả các mục trong một danh sách trong Python?Để nhân mỗi phần tử trong một danh sách với một số:.. Tuyên bố một biến mới lưu trữ một danh sách trống .. Sử dụng một vòng lặp để lặp qua danh sách ban đầu .. Trên mỗi lần lặp, nhân mục Danh sách hiện tại với số .. Nối kết quả vào danh sách mới .. Làm thế nào để bạn nhân một giá trị trong Python?Sự nhân trong python được thực hiện bởi toán tử ( *), sau đó kết quả được lưu trong biến sản phẩm và được in ra bằng định dạng chuỗi.( * ) operator, Then the result is saved in the product variable and printed out using string formatting. |