Cách tạo từ điển và thêm động các cặp giá trị khóa trong python

Tôi đang cố gắng làm điều tương tự như bài đăng đó. Vấn đề duy nhất là tôi không biết khóa và giá trị trả trước là gì. Vì vậy, tôi cần có thể tự động thêm các cặp khóa và giá trị và tôi không biết cách thực hiện điều đó

Có ai biết cách tạo đối tượng đó và thêm động các cặp giá trị chính không?

tôi đã thử

var vars = [{key:"key", value:"value"}];
vars[0].key = "newkey";
vars[0].value = "newvalue";

Nhưng điều đó không hiệu quả

Giải pháp tốt nhất

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs

Về cơ bản, bạn đang tạo một đối tượng theo nghĩa đen với 2 thuộc tính [được gọi là

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
3 và
var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
4] và chèn nó [sử dụng
var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
5] vào mảng

Chỉnh sửa. Vì vậy, gần 5 năm sau, câu trả lời này đang nhận được phản đối vì nó không tạo ra một đối tượng JS "bình thường" theo nghĩa đen [còn gọi là bản đồ, hay còn gọi là hàm băm, hay còn gọi là từ điển].
Tuy nhiên, nó đang tạo ra cấu trúc mà OP đã yêu cầu [và được minh họa trong câu hỏi khác được liên kết với], đó là một mảng các đối tượng bằng chữ, mỗi ký tự có thuộc tính

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
3 và
var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
4. Đừng hỏi tôi tại sao cấu trúc đó được yêu cầu, nhưng đó là cấu trúc được yêu cầu.

Nhưng, nhưng, nếu những gì bạn muốn trong một đối tượng JS đơn giản - chứ không phải cấu trúc mà OP yêu cầu - hãy xem câu trả lời của tcll, mặc dù ký hiệu dấu ngoặc hơi cồng kềnh nếu bạn chỉ có các khóa đơn giản là tên JS hợp lệ. Bạn chỉ có thể làm điều này

// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};

Hoặc sử dụng ký hiệu dấu chấm thông thường để đặt thuộc tính sau khi tạo đối tượng

________số 8

Bạn muốn ký hiệu dấu ngoặc nếu bạn có các khóa có khoảng trắng, ký tự đặc biệt hoặc những thứ tương tự. e. g

var dict = {};

// this obviously won't work
dict.some invalid key [for multiple reasons] = "value1";

// but this will
dict["some invalid key [for multiple reasons]"] = "value1";

Bạn cũng muốn ký hiệu ngoặc nếu các phím của bạn là động

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
0

Lưu ý rằng các khóa [tên thuộc tính] luôn là các chuỗi và các giá trị không phải chuỗi sẽ bị ép buộc thành một chuỗi khi được sử dụng làm khóa. e. g. một đối tượng

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
8 được chuyển đổi thành biểu diễn chuỗi của nó

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
2

Tuy nhiên, xin lưu ý rằng điều này không nhất thiết phải "chỉ hoạt động", vì nhiều đối tượng sẽ có biểu diễn chuỗi như

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
9, điều này không tạo ra khóa không phải là duy nhất. Vì vậy, hãy cảnh giác với một cái gì đó như

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
4

Mặc dù

// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
0 và
// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
1 là các phần tử hoàn toàn khác nhau và duy nhất, cả hai đều có cùng một biểu diễn chuỗi cơ bản.
var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
9

Lý do

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
8 không hoạt động như thế này là vì nguyên mẫu
var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
8 có một phương thức tùy chỉnh
// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
5 sẽ ghi đè biểu diễn chuỗi mặc định. Và bạn có thể làm như vậy

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
1

[Lưu ý rằng vì ở trên sử dụng một số ngẫu nhiên, xung đột tên vẫn có thể xảy ra rất dễ dàng. Nó chỉ để minh họa việc triển khai

// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
5. ]

Vì vậy, khi cố gắng sử dụng các đối tượng làm khóa, JS sẽ sử dụng triển khai

// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
5 của chính đối tượng, nếu có hoặc sử dụng biểu diễn chuỗi mặc định

Giải pháp liên quan

Python – Cách sắp xếp danh sách từ điển theo giá trị của từ điển

Hàm

// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
8 nhận tham số
// object literal with properties
var dict = {
  key1: "value1",
  key2: "value2"
  // etc.
};
9

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
6

Ngoài ra, bạn có thể sử dụng

// empty object literal with properties added afterward
var dict = {};
dict.key1 = "value1";
dict.key2 = "value2";
// etc.
0 thay vì tự xác định chức năng

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
0

Để đầy đủ, hãy thêm

// empty object literal with properties added afterward
var dict = {};
dict.key1 = "value1";
dict.key2 = "value2";
// etc.
1 để sắp xếp theo thứ tự giảm dần

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
1

Javascript – Cách tạo GUID/UUID

[Đã chỉnh sửa vào ngày 16 tháng 10 năm 2021 để phản ánh các phương pháp hay nhất mới nhất để tạo UUID khiếu nại RFC4122]

Hầu hết người đọc ở đây sẽ muốn sử dụng mô-đun

// empty object literal with properties added afterward
var dict = {};
dict.key1 = "value1";
dict.key2 = "value2";
// etc.
2. Nó được kiểm tra và hỗ trợ tốt

Hàm

// empty object literal with properties added afterward
var dict = {};
dict.key1 = "value1";
dict.key2 = "value2";
// etc.
3 là một tiêu chuẩn mới nổi được hỗ trợ trong
// empty object literal with properties added afterward
var dict = {};
dict.key1 = "value1";
dict.key2 = "value2";
// etc.
4 và số lượng trình duyệt ngày càng tăng

Nếu cả hai cách đó đều không phù hợp với bạn, thì có phương pháp này [dựa trên câu trả lời ban đầu cho câu hỏi này]

var dict = []; // create an empty array

dict.push[{
    key:   "keyName",
    value: "the value"
}];
// repeat this last part as needed to add more key/value pairs
2

Ghi chú. Việc sử dụng bất kỳ trình tạo UUID nào dựa trên Math. random[] không được khuyến khích mạnh mẽ [bao gồm các đoạn trích có trong các phiên bản trước của câu trả lời này] vì những lý do được giải thích rõ nhất tại đây. TL;DR. môn Toán. các giải pháp dựa trên ngẫu nhiên [] không đảm bảo tính duy nhất tốt

chúng ta có thể thêm một chìa khóa

Có, bạn có thể thêm vào từ điển bằng Python . Nó được thực hiện bằng phương thức update[]. Phương thức update[] liên kết một từ điển này với một từ điển khác và phương thức này liên quan đến việc chèn các cặp khóa-giá trị từ một từ điển này sang một từ điển khác.

Làm cách nào để tự động nhập từ điển bằng Python?

Cách chèn lệnh động với khóa và giá trị được chèn từ đầu vào trong Python 3. 6, bạn có thể sử dụng đoạn mã sau. key = input["Nhập khóa. "] value = input["Nhập giá trị. "] d = {} .
>>> cái = 2
>>> hàng chục = 3
>>> số = str[chục] + str[cái]
>>> số

Làm cách nào để thêm nhiều giá trị vào một khóa trong từ điển Python?

Ý tưởng chung. Trong Python, nếu chúng ta muốn một từ điển có nhiều giá trị cho một khóa, chúng ta cần lưu trữ các giá trị này trong vùng chứa riêng của chúng trong từ điển. Để làm như vậy, chúng tôi cần phải sử dụng một vùng chứa làm giá trị và thêm nhiều giá trị của chúng tôi vào vùng chứa đó . Các thùng chứa phổ biến là danh sách, bộ dữ liệu và bộ.

Chủ Đề