Giả sử tôi có một từ điển và tôi muốn kiểm tra xem một khóa được ánh xạ tới giá trị không trống. Một cách để làm điều này sẽ là chức năng LEN:
mydict = {"key" : "value", "emptykey" : ""}
print "True" if len[mydict["key"]] > 0 else "False" # prints true
print "True" if len[mydict["emptykey"]] > 0 else "False" # prints false
Tuy nhiên, người ta có thể dựa vào ngữ nghĩa của Python và làm thế nào nếu một đối tượng được xác định, nó sẽ đánh giá là đúng và bỏ cuộc gọi LEN:
mydict = {"key" : "value", "emptykey" : ""}
print "True" if mydict["key"] else "False" # prints true
print "True" if mydict["emptykey"] else "False" # prints false
Tuy nhiên, tôi không chắc cái nào là Pythonic hơn. Cảm giác thứ nhất "Rõ ràng là tốt hơn tiềm ẩn", tuy nhiên cảm giác thứ hai "đơn giản tốt hơn so với phức tạp".
Tôi cũng tự hỏi liệu cuộc gọi của LEN có thể cắn tôi vì điều kỳ diệu mà tôi đang làm việc không nhất thiết phải chứa các chuỗi, nhưng có thể chứa các loại có khả năng khác [danh sách, bộ, v.v.]. Otoh, trước đây [với cuộc gọi LEN] nếu không có ai được lưu trữ dưới dạng giá trị, mã sẽ nổ tung, trong khi phiên bản không có len sẽ hoạt động như mong đợi [sẽ đánh giá thành sai].
Phiên bản nào an toàn hơn và pythonic hơn?
Chỉnh sửa: Làm rõ các giả định: Tôi biết chìa khóa nằm trong từ điển và tôi biết các giá trị sẽ có khả năng. Tôi cũng không thể tránh được các giá trị có độ dài bằng không nhập từ điển.
EDIT #2: Có vẻ như mọi người đang thiếu điểm câu hỏi của tôi. Tôi không cố gắng xác định cách kiểm tra pythonic/an toàn nhất để có thể có trong từ điển, tôi đang cố gắng kiểm tra xem giá trị có không có độ dài hay khônga value has zero length or not
- Kiểm tra xem giá trị thư mục có trống không
- Ví dụ đầu tiên:
- Ví dụ thứ hai:
- Ví dụ thứ ba:
- Cách thứ tư:
Nếu bạn làm việc với từ điển, đôi khi, bạn sẽ phải kiểm tra xem từ điển có trống không.
Trong lập trình, thông thường, có nhiều cách để có được kết quả tương tự. Trong bài học này, tôi sẽ chỉ cho bạn một vài cách, bạn có thể đạt được mục tiêu này.
Cách đầu tiên là đơn giản nhất, nhưng ba người kia cũng không phức tạp lắm. Trong ví dụ của chúng tôi, chúng tôi sẽ có ba từ điển: với một giá trị, không có giá trị và không có giá trị nào.
Nội dung
- 1 Kiểm tra xem giá trị thư mục có trống không Checking if directory value is empty
- 1.1 Ví dụ đầu tiên: First example:
- 1.2 Ví dụ thứ hai: Second example:
- 1.3 Ví dụ thứ ba: Third example:
- 1.4 Cách thứ tư: Fourth way:
Kiểm tra xem giá trị thư mục có trống không
Ví dụ đầu tiên:
Ví dụ thứ hai:
my_dict = {'age': 34}
empty_dict = {}
none_dict = None
if not my_dict:
print["Dict is empty"]
else:
print["Dict is not empty"]
if not empty_dict:
print["Dict is empty"]
else:
print["Dict is not empty"]
if not none_dict:
print["Dict is empty"]
else:
print["Dict is not empty"]
Ví dụ thứ ba:my_dict dictionary has a value, and the empty_dict doesn’t have any, therefore adequate messages are returned.
Dict is not empty Dict is empty Dict is empty
Ví dụ thứ hai:
Ví dụ thứ ba:bool function. Just add bool after not.
my_dict = {'age': 34}
empty_dict = {}
none_dict = None
if not bool[my_dict]:
print["Dict is empty"]
else:
print["Dict is not empty"]
if not bool[empty_dict]:
print["Dict is empty"]
else:
print["Dict is not empty"]
if not bool[none_dict]:
print["Dict is empty"]
else:
print["Dict is not empty"
Cách thứ tư:
Ví dụ thứ ba:
Cách thứ tư:len. This function returns the number of elements inside an object. If len[dict] == 0, then the object is empty.
my_dict = {'age': 34}
empty_dict = {}
none_dict = None
my_dict_len = len[my_dict]
empty_dict_len = len[empty_dict]
none_dict_len = len[empty_dict]
if my_dict_len == 0:
print["Dict is empty"]
else:
print["Dict is not empty, it has " + str[my_dict_len] + " element[s]"]
if empty_dict_len == 0:
print["Dict is empty"]
else:
print["Dict is not empty, it has " + str[empty_dict_len] + " element[s]"]
if none_dict_len == 0:
print["Dict is empty"]
else:
print["Dict is not empty, it has " + str[empty_dict_len] + " element[s]"]
Nếu bạn làm việc với từ điển, đôi khi, bạn sẽ phải kiểm tra xem từ điển có trống không.
Cách thứ tư:
Nếu bạn làm việc với từ điển, đôi khi, bạn sẽ phải kiểm tra xem từ điển có trống không.
my_dict = {'age': 34}
empty_dict = {}
none_dict = None
if my_dict == {}:
print["Dict is empty"]
else:
print["Dict is not empty"]
if empty_dict == {}:
print["Dict is empty"]
else:
print["Dict is not empty"]
if none_dict == {}:
print["Dict is empty"]
else:
print["Dict is not empty"]
Trong lập trình, thông thường, có nhiều cách để có được kết quả tương tự. Trong bài học này, tôi sẽ chỉ cho bạn một vài cách, bạn có thể đạt được mục tiêu này.
Dict is not empty Dict is empty Dict is not empty
Cách đầu tiên là đơn giản nhất, nhưng ba người kia cũng không phức tạp lắm. Trong ví dụ của chúng tôi, chúng tôi sẽ có ba từ điển: với một giá trị, không có giá trị và không có giá trị nào.