# Setting the components of a differential form systematically.

Suppose for some p and q we have a manifold

```
Sage: p=1
Sage: q=2
Sage: M = Manifold((2*p*q), 'M', field='complex')
Sage: U = M.open_subset('U')
Sage: x = U.chart(names=tuple('x_%d' % i for i in range(2*p*q)))
Sage: eU = x.frame()
```

and some differential forms

```
Sage: d = {(i): var("d_{}".format(i)) for i in range(2*p*q)}
Sage: for i in range(2*p*q):
Sage: d[i] = M.diff_form(i)
```

I want to construct and/or inspect components of these differential forms in a systematic way, which is to say I want to be able to iterate over the components. So for example, one way in which I've tried to do this is to create lists.

For example, if we let

```
Sage: R = [eU, 0, 1]
```

I would want to say

```
Sage: d[2]R = 1
```

but this gives me a syntax error.

I've also tried something like

```
Sage: S = [0, 1]
Sage: d[2][eU, :]S = 1
```

but again I get a syntax error.