Enhancing Performance with List Comprehensions in Python
Learn how to use list comprehensions in Python to efficiently create lists and improve the performance of your data processing tasks.
0 likes
194 views
Rule Content
{
"title": "Enhancing Performance with List Comprehensions in Python",
"description": "Learn how to use list comprehensions in Python to efficiently create lists and improve the performance of your data processing tasks.",
"category": "Python Cursor Rules",
"rules": [
{
"pattern": "for\\s+\\w+\\s+in\\s+\\w+:\\s+\\n\\s+\\w+\\.append\\(.*\\)",
"message": "Consider using a list comprehension to simplify this loop and improve performance.",
"replacement": "[\\2 for \\1 in \\3]",
"example": {
"bad": "squared_numbers = []\nfor num in numbers:\n squared_numbers.append(num ** 2)",
"good": "squared_numbers = [num ** 2 for num in numbers]"
}
},
{
"pattern": "\\[.*for\\s+\\w+\\s+in\\s+\\w+\\s+if\\s+.*\\]",
"message": "Ensure that the list comprehension is not overly complex; consider breaking it into multiple comprehensions or using traditional loops for better readability.",
"example": {
"bad": "result = [x + y for x in range(10) if x % 2 == 0 for y in numbers if y % 2 != 0]",
"good": "evens = [x for x in range(10) if x % 2 == 0]\nodds = [y for y in numbers if y % 2 != 0]\nresult = [x + y for x in evens for y in odds]"
}
},
{
"pattern": "\\[.*for\\s+\\w+\\s+in\\s+\\w+\\s+if\\s+.*else\\s+.*\\]",
"message": "Avoid using 'if-else' within list comprehensions for complex conditions; use a regular loop for better clarity.",
"example": {
"bad": "labels = ['Yes' if prob > 0.5 else 'No' for prob in probabilities]",
"good": "labels = []\nfor prob in probabilities:\n if prob > 0.5:\n labels.append('Yes')\n else:\n labels.append('No')"
}
},
{
"pattern": "\\[.*for\\s+\\w+\\s+in\\s+\\w+\\s+for\\s+\\w+\\s+in\\s+\\w+\\]",
"message": "Limit nested list comprehensions to one level to maintain readability; consider using nested loops for deeper nesting.",
"example": {
"bad": "pairs = [(x, y) for x in range(3) for y in range(3) for z in range(3)]",
"good": "pairs = []\nfor x in range(3):\n for y in range(3):\n for z in range(3):\n pairs.append((x, y, z))"
}
},
{
"pattern": "\\[.*for\\s+\\w+\\s+in\\s+\\w+\\s+if\\s+.*\\]",
"message": "Use descriptive variable names in list comprehensions to enhance code readability.",
"example": {
"bad": "squares = [x**2 for x in range(10) if x % 2 == 0]",
"good": "even_squares = [number**2 for number in range(10) if number % 2 == 0]"
}
}
]
}