Table column counter and amp; to search for a Python value

Let's say I have this multi-dimensional table called "a":

``````[['John',  8, 'Student'   ],
['Paul', 22, 'Car Dealer'],
['Nick', 30, 'Doctor'    ],
['Mark', 66, 'Retired'   ]]
```
```

Is there a built in function in python to count how many columns are there (4) instead of doing something like this?:

``````f = 0
for item in a: f = f + 1
```
```

also can I have the two above lines combined in one?

With a built-in function:

• how can I search in the names, in the first column to find if a name exists?

• how can I search the whole table if a value exists?

Use `len` for rows:

``````table=[['John',  8, 'Student'   ],
['Paul', 22, 'Car Dealer'],
['Nick', 30, 'Doctor', 'this row is longer..','making 5'],
['Mark', 66, 'Retired'   ]]

y=len(table)      # 4
```
```

And then you will have to go row by row to find the max width:

``````x=max(len(row) for row in table)     # 5
```
```

You can use a list comprehension to get a vertical column's values:

``````>>> [li[0] for li in table]
['John', 'Paul', 'Nick', 'Mark']
```
```

To find a value, you can use a generator expression with any or just test membership:

``````any('John' in l for l in table)      # True
'Paul' in (li[0] for li in table)    # True
```
```

To find which row, use a list comprehension:

``````[i for i,l in enumerate(table) if 'Mark' in l]   # 3
```
```