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:
Repository metrics
- Stars
- Â (4,978 stars)
- PR merge metrics
-  (å¹³åããŒãž 12h 9m) (30d ã§ 29 merged PRs)
説æ
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.