Hướng dẫn how do you square a list in python? - làm thế nào để bạn bình phương một danh sách trong python?

Tôi được bảo

Viết một hàm, hình vuông (a), lấy một mảng, a, của số và trả về một mảng chứa từng giá trị của một bình phương.

Lúc đầu, tôi đã có

def square(a):
    for i in a: print i**2

Nhưng điều này không hoạt động vì tôi đang in và không trở lại như tôi được hỏi. Vì vậy, tôi đã thử

    def square(a):
        for i in a: return i**2

Nhưng điều này chỉ bình phương số lượng cuối cùng của mảng của tôi. Làm thế nào tôi có thể lấy nó để vuông toàn bộ danh sách?

Hướng dẫn how do you square a list in python? - làm thế nào để bạn bình phương một danh sách trong python?

Cœur

359K24 Huy hiệu vàng189 Huy hiệu bạc258 Huy hiệu đồng24 gold badges189 silver badges258 bronze badges

Đã hỏi ngày 23 tháng 9 năm 2012 lúc 19:17Sep 23, 2012 at 19:17

user1692517user1692517user1692517

1.1124 Huy hiệu vàng14 Huy hiệu bạc27 Huy hiệu đồng4 gold badges14 silver badges27 bronze badges

5

Bạn có thể sử dụng danh sách hiểu biết:

def square(list):
    return [i ** 2 for i in list]

Hoặc bạn có thể

def square(list):
    return [i ** 2 for i in list]
0 nó:

def square(list):
    return map(lambda x: x ** 2, list)

Hoặc bạn có thể sử dụng một máy phát điện. Nó sẽ không trả lại một danh sách, nhưng bạn vẫn có thể lặp lại thông qua nó và vì bạn không phải phân bổ toàn bộ danh sách mới, nên nó có thể tiết kiệm không gian hơn các tùy chọn khác:

def square(list):
    for i in list:
        yield i ** 2

Hoặc bạn có thể thực hiện vòng lặp ____ 21 cũ nhàm chán, mặc dù điều này không thành ngữ như một số lập trình viên Python muốn:

def square(list):
    ret = []
    for i in list:
        ret.append(i ** 2)
    return ret

Đã trả lời ngày 23 tháng 9 năm 2012 lúc 19:22Sep 23, 2012 at 19:22

Waleed Khanwaleed KhanWaleed Khan

11.2k5 Huy hiệu vàng38 Huy hiệu bạc66 Huy hiệu Đồng5 gold badges38 silver badges66 bronze badges

4

Sử dụng danh sách hiểu (đây là cách để đi trong Python thuần túy):

>>> l = [1, 2, 3, 4]
>>> [i**2 for i in l]
[1, 4, 9, 16]

Hoặc Numpy (một mô-đun được thiết lập tốt):

>>> numpy.array([1, 2, 3, 4])**2
array([ 1,  4,  9, 16])

Trong

def square(list):
    return [i ** 2 for i in list]
2, các hoạt động toán học trên các mảng, theo mặc định, được thực hiện theo yếu tố khôn ngoan. Đó là lý do tại sao bạn có thể
def square(list):
    return [i ** 2 for i in list]
3 toàn bộ một mảng ở đó.

Các giải pháp khả thi khác sẽ là dựa trên ____ 20, nhưng trong trường hợp này tôi thực sự thực sự hiểu được danh sách. Đó là Pythonic :) và một giải pháp dựa trên ____ 20 yêu cầu

def square(list):
    return [i ** 2 for i in list]
6s chậm hơn LC.

Đã trả lời ngày 23 tháng 9 năm 2012 lúc 19:19Sep 23, 2012 at 19:19

import numpy as np
a = [2 ,3, 4]
np.square(a)

Đã trả lời ngày 9 tháng 11 năm 2017 lúc 20:43Nov 9, 2017 at 20:43

Hướng dẫn how do you square a list in python? - làm thế nào để bạn bình phương một danh sách trong python?

user3503711user3503711user3503711

1.2881 Huy hiệu vàng17 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge17 silver badges30 bronze badges

Sử dụng Numpy.

import numpy as np
b = list(np.array(a)**2)

Đã trả lời ngày 23 tháng 9 năm 2012 lúc 19:24Sep 23, 2012 at 19:24

Tacaswelltacaswelltacaswell

81.7K20 Huy hiệu vàng206 Huy hiệu bạc193 Huy hiệu Đồng20 gold badges206 silver badges193 bronze badges

4

    def square(a):
        for i in a: return i**2
0

Đã trả lời ngày 23 tháng 9 năm 2012 lúc 19:20Sep 23, 2012 at 19:20

Hướng dẫn how do you square a list in python? - làm thế nào để bạn bình phương một danh sách trong python?

Thêm một giải pháp bản đồ:

    def square(a):
        for i in a: return i**2
1

Đã trả lời ngày 20 tháng 10 năm 2012 lúc 19:31Oct 20, 2012 at 19:31

Hendrikhendrikhendrik

1.83216 huy hiệu bạc14 Huy hiệu đồng16 silver badges14 bronze badges

1

    def square(a):
        for i in a: return i**2
0

Vì vậy, làm thế nào tôi sẽ thực hiện bình phương số từ 1-20 bằng cách sử dụng hàm trên

Mureinik

285K51 Huy hiệu vàng293 Huy hiệu bạc331 Huy hiệu Đồng51 gold badges293 silver badges331 bronze badges

Đã trả lời ngày 15 tháng 12 năm 2015 lúc 5:51Dec 15, 2015 at 5:51

0

bạn có thể làm

    def square(a):
        for i in a: return i**2
3

mà trở lại

    def square(a):
        for i in a: return i**2
4

hoặc, nếu danh sách đã có giá trị

    def square(a):
        for i in a: return i**2
5

kết quả trong một danh sách trông giống như:

    def square(a):
        for i in a: return i**2
4

Lưu ý: Bạn không muốn làm

    def square(a):
        for i in a: return i**2
7

Vì nó thực sự thêm một danh sách vào danh sách ban đầu, chẳng hạn như:

    def square(a):
        for i in a: return i**2
8

Đã trả lời ngày 8 tháng 10 năm 2016 lúc 16:06Oct 8, 2016 at 16:06

9 Guy99 Guy

1272 Huy hiệu bạc12 Huy hiệu Đồng2 silver badges12 bronze badges

2

    def square(a):
        for i in a: return i**2
9

Tomerikoo

16.8K16 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu đồng16 gold badges39 silver badges57 bronze badges

Đã trả lời ngày 19 tháng 5 năm 2021 lúc 8:02May 19, 2021 at 8:02

Hướng dẫn how do you square a list in python? - làm thế nào để bạn bình phương một danh sách trong python?

2