def shuffle(self, x, random=None, int=int):
    """x, random=random.random -> shuffle list x in place; return None.

    Optional arg random is a 0-argument function returning a random
    float in [0.0, 1.0); by default, the standard random.random.
    """

    randbelow = self._randbelow
    for i in reversed(range(1, len(x))):
        # pick an element in x[:i+1] with which to exchange x[i]
        j = randbelow(i+1) if random is None else int(random() * (i+1))
        x[i], x[j] = x[j], x[i]

当我运行shuffle函数时,它会引发以下错误,这是为什么?

TypeError: 'dict_keys' object does not support indexing

推荐答案

很明显,你正在将d.keys()传递给你的shuffle函数.这可能是用python2写的.x(当d.keys()返回一个列表时).用Python 3.x、 d.keys()返回一个dict_keys对象,其行为更像set而不是list.因此,它不能被索引.

解决方案是将list(d.keys())(或简单地说是list(d))传递到shuffle.

Python-3.x相关问答推荐

为什么打印语句在Python多处理脚本中执行两次?

使用具有相同索引的多次出现的索引列表更新NumPy数组

我想判断df_entry_log[AM_PM],并根据测试填充列

正确的本地react 方式-Django身份验证

数据类对象列表的字典获取方法-在数据类列表中查找具有特定变量值的数据类

使用数据库将文件从Sharepoint下载到文件系统

命名空间前缀无效

在REPLACE INTO中引用变量会抛出sqlite3.OperationalError

位对的距离

将两列合并为一列,将它们制成字典 - pandas - groupby

在字符串中查找正则表达式的所有模式

是否可以将多个 if 转换为数组?

将字符串表示与使用整数值的枚举相关联?

如何在 Python 3 中通过 IP 获取 WhoIs 信息?

Python3四舍五入到最接近的偶数

为什么在 Python 中不推荐使用 MutableString?

Python 3 - Zip 是 pandas 数据框中的迭代器

如何为 Python 3.x 安装 psycopg2?

在 linux mint 上安装 python3-venv 模块

Python 2 与 Python 3 - urllib 格式