Hướng dẫn how do you copy part of an array in python? - làm thế nào để bạn sao chép một phần của một mảng trong python?

7

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 đã tìm kiếm một chủ đề có liên quan về cách làm điều này nhưng tôi không thể tìm thấy bất cứ điều gì.

Tôi có một mảng:

x = [a,a,a,b,a,a]

Tôi muốn sao chép các phần tử của mảng vào một mảng mới cho đến khi tôi tìm thấy 'B'. Tôi đã cố gắng làm điều này với một vòng lặp nhưng tôi gặp lỗi rằng "y không được xác định", tôi đã thử khởi tạo y nhưng điều đó cũng không hoạt động. Bất kỳ ý tưởng? Tôi chắc chắn có một cách tốt hơn để làm điều này.

for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]

Hỏi ngày 5 tháng 8 năm 2016 lúc 12:58Aug 5, 2016 at 12:58

2

Thử cái này:

x = [1,1,1,2,1,1]
b = 2

try:
    y = x[:x.index[b]]
except ValueError:
    y = x[:]

Ví dụ:

In [10]: x = [1,1,1,2,1,1]
    ...: b = 2
    ...: 
    ...: try:
    ...:     y = x[:x.index[b]]
    ...: except ValueError:
    ...:     # b was not found in x. Just copy the whole thing.
    ...:     y = x[:]
    ...:

In [11]: y
Out[11]: [1, 1, 1]

Xem list.index[] và lát sao chép nông để biết thêm thông tin.

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 13:04Aug 5, 2016 at 13:04

Sẽ sẽWill

23.2K13 Huy hiệu vàng93 Huy hiệu bạc105 Huy hiệu đồng13 gold badges93 silver badges105 bronze badges

y = []
for e in x:
    if e == 2:
        break
    y.append[e]

?

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 13:02Aug 5, 2016 at 13:02

3

Bạn có thể sử dụng

for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
0:

>>> x = [1,1,1,2,1,1]
>>> import itertools
>>> y = list[itertools.takewhile[lambda i: i != 2, x]]
>>> y
[1, 1, 1]

Khi sử dụng một vòng lặp, bạn phải sử dụng

for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
1; Nếu bạn làm
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
2, thì bạn sẽ nhận được
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
3 khi bạn cố gắng đặt ví dụ: Phần tử đầu tiên của một mảng có các phần tử bằng không. Ngoài ra, khi bạn lặp như thế này
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
4 thì
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
5 đã là yếu tố từ
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
6, tức là bạn không phải làm
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
7. Trong trường hợp của bạn, điều này không đưa ra một ngoại lệ, vì
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
8 sẽ là một yếu tố hợp lệ của
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
6, nhưng nó sẽ không phải là những gì bạn mong đợi.

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 13:04Aug 5, 2016 at 13:04

tobias_ktobias_ktobias_k

Sẽ sẽ11 gold badges115 silver badges173 bronze badges

23.2K13 Huy hiệu vàng93 Huy hiệu bạc105 Huy hiệu đồnggenerator expression:

x = ['a', 'a', 'a', 'b', 'a', 'a']
items = list[next[iter[[]]] if item == 'b' else item for item in x]
print items
['a', 'a', 'a']

?Aug 5, 2016 at 13:12

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 13:02Andriy Ivaneyko

Bạn có thể sử dụng

for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
0:5 gold badges55 silver badges78 bronze badges

4

Khi sử dụng một vòng lặp, bạn phải sử dụng

for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
1; Nếu bạn làm
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
2, thì bạn sẽ nhận được
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
3 khi bạn cố gắng đặt ví dụ: Phần tử đầu tiên của một mảng có các phần tử bằng không. Ngoài ra, khi bạn lặp như thế này
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
4 thì
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
5 đã là yếu tố từ
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
6, tức là bạn không phải làm
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
7. Trong trường hợp của bạn, điều này không đưa ra một ngoại lệ, vì
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
8 sẽ là một yếu tố hợp lệ của
for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
6, nhưng nó sẽ không phải là những gì bạn mong đợi.

>>> x = ['a','a','a','b','a','a']
>>> c = x.index['b']
>>> x[:c]
['a', 'a', 'a']
>>> x[c:]
['b', 'a', 'a']

79.6K11 Huy hiệu vàng115 Huy hiệu bạc173 Huy hiệu đồngAug 5, 2016 at 13:20

Cách để hoàn thành công việc với biểu thức máy phát:tokhi

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 13:1223 gold badges91 silver badges105 bronze badges

1

Andriy Ivaneykoandriy Ivaneyko

>>> x = ['a','a','a','b','a','a']
>>> s = slice[x.index['b']]
>>> 
>>> x[s]
['a', 'a', 'a']

?Aug 5, 2016 at 13:12

Đã trả lời ngày 5 tháng 8 năm 2016 lúc 13:02Iron Fist

Bạn có thể sử dụng

for ii in x:
    if x[ii].find[num] == 0:
        break
    else:
        y[ii] = x[ii]
0:2 gold badges17 silver badges32 bronze badges

2

Làm thế nào để bạn sao chép một phần của một mảng?

Methods:..
Lặp lại từng phần tử của mảng gốc đã cho và sao chép một phần tử tại một thời điểm ..
Sử dụng phương thức Clone [] ..
Sử dụng phương thức ArrayCopy [] ..
Sử dụng phương thức copyof [] của lớp mảng ..
Sử dụng phương thức copyofrange [] của lớp mảng ..

Làm thế nào để bạn sao chép một phần của danh sách trong Python?

Cách sao chép các yếu tố từ danh sách này sang danh sách khác trong Python..
Sử dụng phương thức sao chép tích hợp ..
Danh sách cắt để sao chép nội dung từ danh sách cũ sang danh sách mới ..
Sử dụng phương pháp danh sách tích hợp ..
Sử dụng phương thức Copy.Copy chung ..
Sử dụng phương thức Copy.DeepCopy ..
Sử dụng toán tử * [giải nén] ..

Làm thế nào để bạn sao chép các giá trị trong một mảng trong Python?

Để tạo một bản sao sâu của một mảng trong Python, hãy sử dụng phương thức mảng.copy [].Mảng.Phương thức Copy [] không lấy bất kỳ đối số nào vì nó được gọi trên mảng gốc và trả về mảng sao chép sâu.use the array. copy[] method. The array. copy[] method does not take any argument because it is called on the original array and returns the deep copied array.

Làm thế nào để bạn chia một mảng trong Python?

Sử dụng phương thức Array_Split [], vượt qua trong mảng bạn muốn chia và số lượng phân chia bạn muốn làm..

Chủ Đề