pylint-dev/pylint
GitHub で見るExpand to ``use-implicit-booleaness-not-len`` to catch `len(iterable) == 0` and `>0`
Open
#10,281 opened on 2025年3月17日
False Negative 🦋Good first issueHacktoberfestNeeds decision :lock:
説明
Current problem
C1802 currently catches this
Examples 1&2 (currently caught by rule C1802)
fruits = ["orange", "apple"]
vegetables = []
if len(fruits):
print(fruits)
if not len(vegetables):
print(vegetables)
I come across the following sometimes as well (potentially in botched attempt to fix the the flagged violation above), which I think should be equally flagged as a violation.
Examples 3&4 (not caught by PLC1802)
fruits = ["orange", "apple"]
vegetables = []
if len(fruits) > 0:
print(fruits)
if len(vegetables) == 0:
print(vegetables)
Examples 5&6 (recommended formulation)
fruits = ["orange", "apple"]
vegetables = []
if fruits:
print(fruits)
if not vegetables:
print(vegetables)
Desired solution
Examples 3&4 to be flagged as well
Additional context
See our previous discussion on this issue.