Hướng dẫn how do you multiply all items in a list in python? - làm cách nào để nhân tất cả các mục trong danh sách trong python?

Đây là một số phép đo hiệu suất từ ​​máy của tôi. Có liên quan trong trường hợp điều này được thực hiện cho các đầu vào nhỏ trong một vòng lặp dài:

import functools, operator, timeit
import numpy as np

def multiply_numpy[iterable]:
    return np.prod[np.array[iterable]]

def multiply_functools[iterable]:
    return functools.reduce[operator.mul, iterable]

def multiply_manual[iterable]:
    prod = 1
    for x in iterable:
        prod *= x

    return prod

sizesToTest = [5, 10, 100, 1000, 10000, 100000]

for size in sizesToTest:
    data = [1] * size

    timerNumpy = timeit.Timer[lambda: multiply_numpy[data]]
    timerFunctools = timeit.Timer[lambda: multiply_functools[data]]
    timerManual = timeit.Timer[lambda: multiply_manual[data]]

    repeats = int[5e6 / size]
    resultNumpy = timerNumpy.timeit[repeats]
    resultFunctools = timerFunctools.timeit[repeats]
    resultManual = timerManual.timeit[repeats]
    print[f'Input size: {size:>7d} Repeats: {repeats:>8d}    Numpy: {resultNumpy:.3f}, Functools: {resultFunctools:.3f}, Manual: {resultManual:.3f}']

Results:

Input size:       5 Repeats:  1000000    Numpy: 4.670, Functools: 0.586, Manual: 0.459
Input size:      10 Repeats:   500000    Numpy: 2.443, Functools: 0.401, Manual: 0.321
Input size:     100 Repeats:    50000    Numpy: 0.505, Functools: 0.220, Manual: 0.197
Input size:    1000 Repeats:     5000    Numpy: 0.303, Functools: 0.207, Manual: 0.185
Input size:   10000 Repeats:      500    Numpy: 0.265, Functools: 0.194, Manual: 0.187
Input size:  100000 Repeats:       50    Numpy: 0.266, Functools: 0.198, Manual: 0.185

Bạn có thể thấy rằng Numpy chậm hơn một chút so với các đầu vào nhỏ hơn, vì nó phân bổ một mảng trước khi nhân lên. Ngoài ra, coi chừng tràn trong Numpy.

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:51:46 [UTC/GMT +8 giờ]

Danh sách Python: Bài tập-2 với giải pháp

Viết một chương trình Python để nhân tất cả các mục trong danh sách.

Ví dụ 1 :

Ví dụ - 2:

Ví dụ - 3:

Giải pháp mẫu:-:-

Mã Python:

def multiply_list[items]:
    tot = 1
    for x in items:
        tot *= x
    return tot
print[multiply_list[[1,2,-8]]]

Đầu ra mẫu:

-16

Flowchart:


Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Trình chỉnh sửa mã Python:

Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn [và nhận xét] thông qua Disqus.

Trước đây: Viết chương trình Python để tổng hợp tất cả các mục trong danh sách. Write a Python program to sum all the items in a list.
Next: Write a Python program to get the largest number from a list.

Mức độ khó của bài tập này là gì?

Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.

Python: Lời khuyên trong ngày

Một cách thanh lịch để đối phó với đường dẫn tệp [3.4 =]:

>>> from pathlib import Path
>>> data_folder = Path["source_data/text_files/"]

# Path calculation and metadata
>>> file_to_open = data_folder / "raw_data.txt"
>>> file_to_open.name
"raw_data.txt"
>>> file_to_open.suffix
"txt"
>>> file_to_open.stem
"raw_data"
                       
# Files functions                       
>>> f = open[file_to_open]
>>> f.read[]
# content of the file                      
>>> file_to_open.exists[]
True

  • Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
  • Bài tập SQL, Thực hành, Giải pháp - Tham gia
  • Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
  • JavaScript Basic - Bài tập, Thực hành, Giải pháp
  • Java Array: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
  • Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
  • Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
  • Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
  • Mảng C ++: Bài tập, Thực hành, Giải pháp
  • Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
  • Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
  • Python Lambda - Bài tập, Thực hành, Giải pháp
  • Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
  • Công cụ chuyển đổi
  • JavaScript: HTML Mẫu xác thực

Bạn có thể nhân danh sách trong Python không?

Danh sách và chuỗi có rất nhiều điểm chung.Chúng là cả hai chuỗi và, giống như trăn, chúng sẽ lâu hơn khi bạn cho chúng ăn.Giống như một chuỗi, chúng ta có thể kết hợp và nhân danh sách Python.we can concatenate and multiply a Python list.

Bạn có thể nhân danh sách với một chiếc phao không?

Nhân một chuỗi danh sách với một số float.Tương tự như chuỗi và bộ dữ liệu, danh sách cũng được coi là một đối tượng trình tự trong Python.Do đó, cố gắng nhân danh sách với một chiếc phao cũng sẽ ném một lỗi loại.trying to multiply a list by a float will also throw a type error.

Bài Viết Liên Quan

Chủ Đề