You push onto a list values. This can be references of tokens, items, treenodes and objects. You can push strings, integer or double datatypes as a value. Each value is a key. By reading this key you can get additional attributes as fields in a list. If you push a number like 1 then there is not much you can do with this information to add fields. On the other hand if you push a token onto list and this token has got label values stored, then you add fields of these labels to your list, too.
A push action cannot analyze tuple structures of two or more independent datatypes or arrays and get automatically a relation between them.
If you want to realize a new list by a key value and custom independent fields you can push this as a list parameter onto a list.
If you have an array of key values, then you can push this array. Each array element is a single key value, then. You get then field values, which you can evaluate from the key value.
unique list entries is an option of a list.
accumulating of field values is an option from a dynamic field.
limits of both options are discussed in manual about lists.