Skip to content

repeated-append (FURB113)#

Derived from the refurb linter.

Fix is sometimes available.

This rule is unstable and in preview. The --preview flag is required for use.

What it does#

Checks for consecutive calls to append.

Why is this bad?#

Consecutive calls to append can be less efficient than batching them into a single extend. Each append resizes the list individually, whereas an extend can resize the list once for all elements.

Known problems#

This rule is prone to false negatives due to type inference limitations, as it will only detect lists that are instantiated as literals or annotated with a type annotation.

Example#

nums = [1, 2, 3]

nums.append(4)
nums.append(5)
nums.append(6)

Use instead:

nums = [1, 2, 3]

nums.extend((4, 5, 6))

References#