Message314062
In Python 3, the expression:
```python
random.choice(d)
```
where `d` is a `dict`, raises this error:
```
~/anaconda3/lib/python3.6/random.py in choice(self, seq)
256 except ValueError:
257 raise IndexError('Cannot choose from an empty sequence') from None
--> 258 return seq[i]
259
260 def shuffle(self, x, random=None):
KeyError: 2
```
Converting `d` into a list restores the Python 2's behavior:
```python
random.choice(list(d))
```
I am aware that the keys of a dict have now their own type. But IMHO the error message is rather uninformative, and above all, couldn't this conversion be made implicitely under the hood? |
|
Date |
User |
Action |
Args |
2018-03-18 22:00:28 | Aristide Grange | set | recipients:
+ Aristide Grange |
2018-03-18 22:00:28 | Aristide Grange | set | messageid: <1521410428.93.0.467229070634.issue33098@psf.upfronthosting.co.za> |
2018-03-18 22:00:28 | Aristide Grange | link | issue33098 messages |
2018-03-18 22:00:28 | Aristide Grange | create | |
|