Hướng dẫn how do you add elements to a recursion list in python? - làm cách nào để bạn thêm các phần tử vào danh sách đệ quy trong python?

9

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 muốn nối vào một danh sách đệ quy nhưng tôi không thể đưa ra một chức năng hoạt động. Hàm có hai đối số times

def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
0. times nên là số lần để nối dữ liệu.

Đây là mã của tôi cho đến nay:

def replicate_recur[times, data]:
    result2 = []
    if times == 0:
        result2.append[data]
    else:
        result2.append[data]
        replicate_recur[times - 1, data]
    return result2

MSEifert

138K33 Huy hiệu vàng320 Huy hiệu bạc333 Huy hiệu đồng33 gold badges320 silver badges333 bronze badges

Đã hỏi ngày 22 tháng 2 năm 2017 lúc 9:54Feb 22, 2017 at 9:54

4

Bạn có thể sử dụng một danh sách trung gian để nối vào mỗi cuộc gọi đệ quy. Điều đó tránh được những vấn đề xác định lại mà bạn đang gặp phải hiện tại:

def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result

Khi được gọi:

>>> replicate_recur[4, 2]
[2, 2, 2, 2]

Đã trả lời ngày 22 tháng 2 năm 2017 lúc 10:06Feb 22, 2017 at 10:06

MSEifertMseifertMSeifert

138K33 Huy hiệu vàng320 Huy hiệu bạc333 Huy hiệu đồng33 gold badges320 silver badges333 bronze badges

Đã hỏi ngày 22 tháng 2 năm 2017 lúc 9:54

def replicate_recur[times, data]:
    result2 = []
    if times == 1:
        result2.append[data]
    else:
        result2.append[data]
        result2.extend[replicate_recur[times - 1, data]]
    return result2

Bạn có thể sử dụng một danh sách trung gian để nối vào mỗi cuộc gọi đệ quy. Điều đó tránh được những vấn đề xác định lại mà bạn đang gặp phải hiện tại:

def replicate[times, data]:
    return [data]*times

Khi được gọi:

Đã trả lời ngày 22 tháng 2 năm 2017 lúc 10:061 gold badge14 silver badges25 bronze badges

MSEifertMseifertFeb 22, 2017 at 10:00

Để làm cho mã của bạn hoạt động, bạn cần

def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
2 danh sách trong quá trình thực thi hiện tại với đầu ra của cuộc gọi đệ quy tiếp theo. Ngoài ra, độ sâu thấp nhất của đệ quy phải được xác định bởi
def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
3:Moses Koledoye

Trên một lưu ý khác, bạn có thể chỉ cần sao chép danh sách của mình bằng:8 gold badges124 silver badges133 bronze badges

2

Adirio

def replicate[times, data]:
    result2 = []
    for i in xrange[times]:
        result2.append[data]
    return result2

4,8801 Huy hiệu vàng14 Huy hiệu bạc25 Huy hiệu đồng

def replicate_recur[times, data, listTest=None]:
    # If a list has not been passed as argument create an empty one
    if[listTest == None]:
        listTest = []
    # Return the list if we need to replicate 0 more times
    if times == 0:
        return listTest
    # If we reach here at least we have to replicate once
    listTest.append[data]
    # Recursive call to replicate more times, if needed and return the result
    replicate_recur[times-1, data, listTest]
    return listTest

Khi được gọi:

Đã trả lời ngày 22 tháng 2 năm 2017 lúc 10:061 gold badge14 silver badges25 bronze badges

MSEifertMseifertFeb 22, 2017 at 9:58

3

Để làm cho mã của bạn hoạt động, bạn cần

def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
2 danh sách trong quá trình thực thi hiện tại với đầu ra của cuộc gọi đệ quy tiếp theo. Ngoài ra, độ sâu thấp nhất của đệ quy phải được xác định bởi
def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
3:

Trên một lưu ý khác, bạn có thể chỉ cần sao chép danh sách của mình bằng:

[result2.append[data]]*times

MSEifertMseifertFeb 22, 2017 at 9:58

Để làm cho mã của bạn hoạt động, bạn cần

def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
2 danh sách trong quá trình thực thi hiện tại với đầu ra của cuộc gọi đệ quy tiếp theo. Ngoài ra, độ sâu thấp nhất của đệ quy phải được xác định bởi
def replicate_recur[times, data, result=None]:
    if result is None:  # create a new result if no intermediate was given
        result = []
    if times == 1:
        result.append[data]
    else:
        result.append[data]
        replicate_recur[times - 1, data, result]  # also pass in the "result"
    return result
3:Abhishek J

Trên một lưu ý khác, bạn có thể chỉ cần sao chép danh sách của mình bằng:2 gold badges21 silver badges21 bronze badges

1

Adirio

[data] * times

4,8801 Huy hiệu vàng14 Huy hiệu bạc25 Huy hiệu đồng

Đã trả lời ngày 22 tháng 2 năm 2017 lúc 10:00

Moses Koledoyemoses Koledoye4 gold badges34 silver badges51 bronze badges

75,8K8 Huy hiệu vàng124 Huy hiệu bạc133 Huy hiệu đồngFeb 22, 2017 at 10:04

2

Làm thế nào để bạn thêm các yếu tố vào một danh sách trong đệ quy trong Python?

Số Sum Sum trong danh sách Python bằng cách sử dụng câu trả lời của Recursion..
DEF DANH SÁCH [NUMLIST]:.
Nếu Len [Numlist] == 1:.
trả về danh sách số [0].
Trả về Numlist [0] + Danh sách [Numlist [1:]].
print[listsum[[1,3,5,7,9]]].

Làm thế nào để bạn thêm hai số đệ quy trong Python?

Chương trình Python để tìm tổng của hai số bằng cách sử dụng đệ quy..
Khai báo hai biến loại int x, y x và y được sử dụng để nhận đầu vào từ người dùng ..
Nhận đầu vào từ người dùng cho x, y để thực hiện bổ sung ..
Khi hàm được gọi, hai số sẽ được thông qua như một đối số.....
Hiển thị kết quả trên màn hình ..

Làm thế nào để bạn thiết lập đệ quy?

Các bước cơ bản của các chương trình đệ quy..
Khởi tạo thuật toán.....
Kiểm tra xem có giá trị hiện tại đang được xử lý phù hợp với trường hợp cơ sở hay không.....
Xác định lại câu trả lời về một vấn đề phụ hoặc vấn đề phụ nhỏ hơn hoặc đơn giản hơn ..
Chạy thuật toán trên vấn đề phụ ..
Kết hợp các kết quả trong việc xây dựng câu trả lời ..

Bài Viết Liên Quan

Chủ Đề