Hướng dẫn how do you access an element in an array of objects in python? - làm thế nào để bạn truy cập một phần tử trong một mảng đối tượng trong python?

Tôi đang cố gắng viết một plugin Sublime Text 2 và nhận được một số giá trị trong tệp .subilme-settings.

{
"files":
    [
        {
            "name" : "Markdown",
            "extension" : ".md"
        },{
            "name" : "Python",
            "extension" : ".py"
        },{
            "name" : "Sublime Text Setting",
            "extension" : ".sublime-settings"
        }
    ]
}

Đây là lần đầu tiên của tôi với Python và tôi không biết làm thế nào để làm điều đó, có tồn tại một cái gì đó như:Python and I don't know how to do it, does exists something like:

my_array.indexOf({"extension":".py"})

Hướng dẫn how do you access an element in an array of objects in python? - làm thế nào để bạn truy cập một phần tử trong một mảng đối tượng trong python?

Đã hỏi ngày 8 tháng 11 năm 2013 lúc 20:59Nov 8, 2013 at 20:59

Hướng dẫn how do you access an element in an array of objects in python? - làm thế nào để bạn truy cập một phần tử trong một mảng đối tượng trong python?

Danh sách Python có phương thức index. Nhưng nó chỉ tìm thấy các giá trị bằng với đối số, không phải các giá trị có đối số phù hợp với giá trị từng phần của bạn.

Thực sự không có gì trong Python tìm thấy các trận đấu cấu trúc một phần như thế này; Bạn có thể tìm kiếm/lọc/vv. Về bình đẳng, hoặc trên một chức năng vị ngữ, nhưng bất cứ điều gì khác bạn phải tự viết.

Cách dễ nhất để làm điều này là với một vòng lặp. Bạn có thể viết nó một cách rõ ràng:

for index, element in enumerate(my_array):
    if element["extension"] == ".py":
        return index

… Hoặc trong một sự hiểu biết:

return next(index for index, element in enumerate(array)
            if element["extension"] == ".py")

Ngoài ra, bạn có thể biến khớp thành một hàm và chuyển nó sang

my_array.indexOf({"extension":".py"})
0 hoặc sử dụng nó như một hàm
my_array.indexOf({"extension":".py"})
1 trong hàm bậc cao hơn phức tạp hơn, nhưng dường như không có lợi thế thực sự nào cho điều đó ở đây.

Và tất nhiên bạn có thể viết chức năng giống như ____ 12 của riêng bạn phù hợp với các cấu trúc một phần nếu bạn muốn.

Đã trả lời ngày 8 tháng 11 năm 2013 lúc 21:04Nov 8, 2013 at 21:04

ABARNERTABARNERTabarnert

341K44 Huy hiệu vàng573 Huy hiệu bạc651 Huy hiệu Đồng44 gold badges573 silver badges651 bronze badges

Bạn có thể viết chức năng của riêng mình để lấy chỉ mục:

>>> my_dict = {'files': [{'name': 'Markdown', 'extension': '.md'}, {'name': 'Python', 'extension': '.py'}, {'name': 'Sublime Text Setting', 'extension': '.sublime-settings'}]}
>>> def solve(key, val, lis):
        return next((i for i, d in enumerate(lis) if d[key] == val), None)
... 
>>> solve('extension', '.py', my_dict['files'])
1

Đã trả lời ngày 8 tháng 11 năm 2013 lúc 21:04Nov 8, 2013 at 21:04

Hướng dẫn how do you access an element in an array of objects in python? - làm thế nào để bạn truy cập một phần tử trong một mảng đối tượng trong python?

ABARNERTABARNERTAshwini Chaudhary

341K44 Huy hiệu vàng573 Huy hiệu bạc651 Huy hiệu Đồng56 gold badges444 silver badges496 bronze badges

2

Bạn có thể viết chức năng của riêng mình để lấy chỉ mục:

i=0
for element in files:
    if '.py' in element:
        break
    else:
        i+=1

Ashwini Chaudharyashwini Chaudhary

myElements=[]
for element in files:
    if '.py' in element:
        myElements.append(element)

237K56 Huy hiệu vàng444 Huy hiệu bạc496 Huy hiệu ĐồngNov 8, 2013 at 21:07

Hướng dẫn how do you access an element in an array of objects in python? - làm thế nào để bạn truy cập một phần tử trong một mảng đối tượng trong python?

Điều này rất có thể không phải là giải pháp tốt nhất, nhưng bạn có thể thử điều này:RageCage

Vào cuối vòng lặp này, nếu nó tìm thấy phần mở rộng bạn muốn, 'Tôi' sẽ là chỉ mục bạn đang tìm kiếm. Tuy nhiên, nếu bạn muốn có một danh sách của từng phần tử với một phần mở rộng:2 gold badges6 silver badges19 bronze badges


Lưu ý: Python không có hỗ trợ tích hợp cho các mảng, nhưng danh sách Python có thể được sử dụng thay thế. Python does not have built-in support for Arrays, but Python Lists can be used instead.


Mảng

Lưu ý: Tuy nhiên, trang này chỉ cho bạn cách sử dụng danh sách dưới dạng mảng, tuy nhiên, để hoạt động với các mảng trong Python, bạn sẽ phải nhập thư viện, như thư viện Numpy. This page shows you how to use LISTS as ARRAYS, however, to work with arrays in Python you will have to import a library, like the NumPy library.

Mảng được sử dụng để lưu trữ nhiều giá trị trong một biến duy nhất:

Thí dụ

Tạo một mảng chứa tên xe:

Ô tô = ["Ford", "Volvo", "BMW"]

Hãy tự mình thử »


Một mảng là gì?

Một mảng là một biến đặc biệt, có thể chứa nhiều hơn một giá trị tại một thời điểm.

Nếu bạn có một danh sách các mặt hàng (ví dụ danh sách các tên xe hơi), việc lưu trữ xe trong các biến đơn có thể trông như thế này:

car1 = "ford" car2 = "volvo" car3 = "bmw"
car2 = "Volvo"
car3 = "BMW"

Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn lặp qua những chiếc xe và tìm một chiếc cụ thể? Và điều gì sẽ xảy ra nếu bạn không có 3 chiếc xe, mà là 300?

Giải pháp là một mảng!

Một mảng có thể chứa nhiều giá trị dưới một tên duy nhất và bạn có thể truy cập các giá trị bằng cách tham khảo số chỉ mục.


Truy cập các yếu tố của một mảng

Bạn tham khảo một phần tử mảng bằng cách tham khảo số chỉ mục.

Thí dụ

Sửa đổi giá trị của mục mảng đầu tiên:

Ô tô [0] = "Toyota"

Hãy tự mình thử »


Chiều dài của một mảng

Sử dụng phương thức

my_array.indexOf({"extension":".py"})
3 để trả về độ dài của một mảng (số lượng phần tử trong một mảng).

Thí dụ

Sửa đổi giá trị của mục mảng đầu tiên:

Ô tô [0] = "Toyota"

Hãy tự mình thử »

Chiều dài của một mảng The length of an array is always one more than the highest array index.



Sử dụng phương thức my_array.indexOf({"extension":".py"}) 3 để trả về độ dài của một mảng (số lượng phần tử trong một mảng).

Trả về số lượng phần tử trong mảng

my_array.indexOf({"extension":".py"})
4:


x = len (ô tô)

Lưu ý: Độ dài của một mảng luôn nhiều hơn một chỉ số mảng cao nhất.

Thí dụ

Sửa đổi giá trị của mục mảng đầu tiên:

Ô tô [0] = "Toyota"

Hãy tự mình thử »


Chiều dài của một mảng

Sử dụng phương thức

my_array.indexOf({"extension":".py"})
3 để trả về độ dài của một mảng (số lượng phần tử trong một mảng).

Trả về số lượng phần tử trong mảng

my_array.indexOf({"extension":".py"})
4:

Thí dụ

Sửa đổi giá trị của mục mảng đầu tiên:

Ô tô [0] = "Toyota"

Hãy tự mình thử »

Chiều dài của một mảng The list's

my_array.indexOf({"extension":".py"})
9 method only removes the first occurrence of the specified value.


Sử dụng phương thức my_array.indexOf({"extension":".py"}) 3 để trả về độ dài của một mảng (số lượng phần tử trong một mảng).

Trả về số lượng phần tử trong mảng

my_array.indexOf({"extension":".py"})
4:

x = len (ô tô)Lưu ý: Độ dài của một mảng luôn nhiều hơn một chỉ số mảng cao nhất.
Vòng lặp các yếu tố mảngBạn có thể sử dụng vòng lặp
my_array.indexOf({"extension":".py"})
5 để lặp qua tất cả các phần tử của một mảng.
Thêm các phần tử mảngBạn có thể sử dụng phương thức
my_array.indexOf({"extension":".py"})
6 để thêm một phần tử vào một mảng.
Thêm một phần tử nữa vào mảng
my_array.indexOf({"extension":".py"})
4:
ô tô.append ("Honda")
Loại bỏ các yếu tố mảngBạn có thể sử dụng phương thức
my_array.indexOf({"extension":".py"})
8 để xóa một phần tử khỏi mảng.
Bạn cũng có thể sử dụng phương thức
my_array.indexOf({"extension":".py"})
9 để xóa một phần tử khỏi mảng.
Xóa phần tử có giá trị "Volvo":
Cars.Remove ("Volvo")Lưu ý: Phương thức
my_array.indexOf({"extension":".py"})
9 của danh sách chỉ loại bỏ sự xuất hiện đầu tiên của giá trị được chỉ định.
Phương pháp mảngPython có một bộ các phương thức tích hợp mà bạn có thể sử dụng trên danh sách/mảng.
Phương phápSự mô tả
nối ()Thêm một phần tử ở cuối danh sách
xa lạ()Xóa tất cả các yếu tố khỏi danh sách
sao chép ()Trả về một bản sao của danh sách

đếm() Python does not have built-in support for Arrays, but Python Lists can be used instead.



Làm thế nào để bạn truy cập một mảng các đối tượng trong Python?

Trong Python, để truy cập các mục mảng, hãy tham khảo số chỉ mục. Chúng tôi sẽ sử dụng toán tử chỉ mục, [] để truy cập các mục từ mảng.use the index operator ” [] “ for accessing items from the array.

Làm thế nào để bạn truy cập một phần tử trong một mảng các đối tượng?

Cấu trúc dữ liệu lồng nhau là một mảng hoặc đối tượng đề cập đến các mảng hoặc đối tượng khác, tức là các giá trị của nó là mảng hoặc đối tượng.Các cấu trúc như vậy có thể được truy cập bằng cách áp dụng liên tiếp ký hiệu dấu chấm hoặc khung.Dưới đây là một ví dụ: const data = {code: 42, các mục: [{id: 1, tên: 'foo'}, {id: 2, name: 'Bar'}]};consecutively applying dot or bracket notation. Here is an example: const data = { code: 42, items: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }] };

Làm thế nào để bạn truy cập các yếu tố trong một mảng mảng?

Các phần tử mảng truy cập Bạn có thể truy cập một phần tử mảng bằng cách tham khảo số chỉ mục của nó.Các chỉ mục trong các mảng numpy bắt đầu bằng 0, nghĩa là phần tử thứ nhất có chỉ mục 0 và phần thứ hai có chỉ số 1, v.v.by referring to its index number. The indexes in NumPy arrays start with 0, meaning that the first element has index 0, and the second has index 1 etc.

Làm thế nào để bạn truy cập một đối tượng trong danh sách trong Python?

Danh sách chỉ mục.Chúng ta có thể sử dụng toán tử chỉ mục [] để truy cập một mục trong danh sách.Trong Python, các chỉ số bắt đầu từ 0. Vì vậy, một danh sách có 5 phần tử sẽ có một chỉ mục từ 0 đến 4.use the index operator [] to access an item in a list. In Python, indices start at 0. So, a list having 5 elements will have an index from 0 to 4.