Hướng dẫn how do you find the square of a list in python? - làm thế nào để bạn tìm thấy hình vuông của một danh sách trong python?

20

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.
Learn more.

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 find the square of a list in python? - làm thế nào để bạn tìm thấy hình vuông của một danh sách trong python?

Cœur

356K24 Huy hiệu vàng188 Huy hiệu bạc257 Huy hiệu đồng24 gold badges188 silver badges257 bronze badges

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

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ạc65 Huy hiệu Đồng5 gold badges38 silver badges65 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 find the square of a list in python? - làm thế nào để bạn tìm thấy hình vuông của một danh sách trong python?

user3503711user3503711user3503711

1.2541 Huy hiệu vàng16 Huy hiệu bạc29 Huy hiệu đồng1 gold badge16 silver badges29 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.2K20 Huy hiệu vàng206 Huy hiệu bạc192 Huy hiệu Đồng20 gold badges206 silver badges192 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 find the square of a list in python? - làm thế nào để bạn tìm thấy hình vuông của một danh sách trong python?

Tò mòCurious

2.6381 Huy hiệu vàng29 Huy hiệu bạc40 Huy hiệu đồng1 gold badge29 silver badges40 bronze badges

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

284K51 Huy hiệu vàng290 Huy hiệu bạc327 Huy hiệu đồng51 gold badges290 silver badges327 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.7K15 Huy hiệu vàng38 Huy hiệu bạc54 Huy hiệu đồng15 gold badges38 silver badges54 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 find the square of a list in python? - làm thế nào để bạn tìm thấy hình vuông của một danh sách trong python?

2

Làm thế nào để bạn kiểm tra một hình vuông trong Python?

Kiểm tra hình vuông hoàn hảo trong Python..
Thuật toán (Phương pháp 1) lấy Slound () giá trị căn bậc hai của số.Nhân căn bậc hai hai lần.....
Mã Python ..
Đầu ra.Sai..
Thuật toán (Phương pháp 2) Trong phương pháp này, chúng tôi sử dụng chức năng sàn và trần.Nếu chúng bằng nhau ngụ ý số là một hình vuông hoàn hảo ..
Đầu ra.ĐÚNG VẬY..

Làm thế nào để bạn tìm thấy hình vuông hoàn hảo của một danh sách?

Có 30 hình vuông hoàn hảo trong khoảng từ 1 đến 1000. Chúng là 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400,441, 484, 529, 576, 625, 676, 729, 784, 841, 900 và 961.30 perfect squares between 1 and 1000. They are 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900 and 961.