cuốn sách gpt4 ai đã làm

Python - lấy mọi phần tử thứ n (tại chỗ)

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 09:29:38 27 4
mua khóa gpt4 Nike

Tôi có mã (đơn giản hóa) sau đây:

a = a[::3]
b = b[::3]
c = c[::3]
d = d[::3]

a,b,c,d,Trên thực tế, chúng đều là những biểu thức rất phức tạp nên tôi muốn viết chúng như thế này:

cho l trong [a, b, c, d]
l = l[::3]

, tất nhiên là không. Làm cách nào tôi có thể đặt từng phần tử thứ n vào đúng vị trí của nó? Nếu tôi muốn xóa mọi phần tử thứ n, tôi có thể sử dụng del, nhưng đây không phải là trường hợp.

Về cơ bản, tôi muốn:

  • mỗia,b,c,dChỉ sử dụng một lần
  • Chỉ định lát cắt (hoặc bất kỳ thứ gì) một lần.

câu trả lời hay nhất

Sử dụng cách tiếp cận hiện tại của bạn, làm l = l[::3] Bạn chỉ đang gán lại biến, hay nói cách khác là tạo một bản sao của danh sách, bản sao này sẽ để lại Một không thay đổi.

Hãy xem một ví dụ bằng cách sử dụng NHẬN DẠNG Chúng ta có thể thấy rằng danh tính của đối tượng sẽ khác sau khi gán lại:

cho tôi trong [a,b]:
print(id(a)) # 43269876104
in(id(i)) # 43269876104
tôi = tôi[::3]
print(id(i)) # 43271280456
break

Tuy nhiên, bạn có thể sử dụngphân bổ látSửa đổi dữ liệu tại chỗ:

cho tôi trong [a,b]:
print(id(a)) # 43269876104
in(id(i)) # 43269876104
tôi[:] = tôi[::3]
in(id(i)) # 43269876104
break

Vì vậy, quay lại trường hợp của bạn, bạn có thể làm điều này:

cho tôi trong [a, b, c, d]:
tôi[:] = tôi[::3]

Đây là một ví dụ đơn giản:

a = danh sách (phạm vi (30))
b = danh sách (phạm vi (30))

cho tôi trong [a,b]:
tôi[:] = tôi[::3]

in(b)
# [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

Về Python - lấy mọi phần tử thứ n (tại chỗ), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/56209895/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress