Bạn tìm hiểu xem một danh sách trống bằng cách kiểm tra 'chân lý' của nó:
>>> bool([])
False
>>> bool([0])
True
Trong trường hợp thứ hai, 0
là False, nhưng danh sách [0]
là True vì nó chứa một cái gì đó. (Nếu bạn muốn kiểm tra một danh sách để chứa tất cả mọi thứ falsey, sử dụng all hoặc any: any(e for e in li)
là True nếu bất kỳ mục trong li
là truthy.)
Điều này dẫn đến thành ngữ này:
if li:
# li has something in it
else:
# optional else -- li does not have something
if not li:
# react to li being empty
# optional else...
Theo PEP 8, đây là cách thích hợp:
• For sequences, (strings, lists, tuples), use the fact that empty sequences are false.
Yes: if not seq:
if seq:
No: if len(seq)
if not len(seq)
Bạn kiểm tra nếu một danh sách có một chỉ số cụ thể hiện bằng cách sử dụng try
:
>>> try:
... li[3]=6
... except IndexError:
... print 'no bueno'
...
no bueno
Vì vậy, bạn có thể muốn đảo ngược thứ tự của mã của bạn như thế này:
if list3:
print list3
else:
print "No matches found"
Có gì sai với 'not'? – halex
Nó cho một nhiệm vụ của trường, và tôi không phải biết ngay bây giờ. Tôi chỉ biết về nó bởi vì tôi đã tìm kiếm câu trả lời trước đây. – user2240288
có thể trùng lặp của [Cách tốt nhất để kiểm tra xem danh sách có trống không] (http://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty) –