Câu trả lời của IfLoop (và nhận xét của MatToufoutu) hoạt động tốt cho các biến độc lập, nhưng tôi muốn cung cấp câu trả lời cho bất kỳ ai đang cố gắng làm điều gì đó tương tự cho các mục riêng lẻ trong danh sách, bộ hoặc từ điển.
Từ điển
existing_dict = {"spam": 1, "eggs": 2}
existing_dict["foo"] = existing_dict["foo"] if "foo" in existing_dict else 3
Returns {"spam": 1, "eggs": 2, "foo": 3}
Lists
existing_list = ["spam","eggs"]
existing_list = existing_list if len(existing_list)==3 else
existing_list + ["foo"]
Returns ["spam", "eggs", "foo"]
Tuples
existing_tuple = ("spam","eggs")
existing_tuple = existing_tuple if len(existing_tuple)==3 else
existing_tuple + ("foo",)
Returns ("spam", "eggs", "foo")
(Đừng quên dấu phẩy trong ("foo",)
để xác định một "duy nhất" tuple.)
Các danh sách và các bộ giải pháp sẽ phức tạp hơn nếu bạn muốn để làm nhiều hơn là chỉ kiểm tra độ dài và nối thêm vào cuối. Tuy nhiên, điều này mang lại một hương vị của những gì bạn có thể làm.
Nguồn
2014-07-01 14:25:04
Trong trường hợp nào bạn sẽ tham chiếu các biến có thể không tồn tại? Bạn có muốn tham chiếu các biến đã được khai báo nhưng chưa được khởi tạo không? – mwcz