python - python中的连接列表(Discord Bot)
问题描述
我想用python编写一个机器人。我目前正在关注本教程。
当我尝试实现 options 变量 (40:55) 时,一切都很好,但是因为我想在 Discord 中测试机器人(目前在 48:19 分钟),所以机器人没有添加新的鼓励。
这是我的代码:
options = starter_encouragements
if "encouragements" in db.keys():
options = options + db['encouragements']
这是 starter_encouragements 列表:
starter_encouragements = [
"Cheer up!",
"Hang in there!",
"You are a great person / bot!"
]
解决方案
TypeError 提供了一条有用的信息。您的代码正在尝试将 ObservedList 连接到列表。它们是两种不同的数据结构。ObservedList 是 replit 包中定义的数据结构。在他们的教程中,他们解释了:
在后台,此功能通过使用特殊替换来替换原始列表和字典类来监听突变,即replit.database.database.ObservedList 和replit.database.ObservedDict。
所以问题变成了,“如何获取 ObservedList 中包含的列表,以便将值添加到另一个列表中?” 这很简单。要获取 ObservedList 中包含的列表,请调用该value
属性。
db[“encouragements”].value
将您的代码更改为:
options = starter_encouragements
if "encouragements" in db.keys():
options = options + db['encouragements'].value
如果由于某种原因不起作用,请尝试使用 python 的extend()
方法而不是+
运算符。您需要使用可变序列类型操作。
options = starter_encouragements
if "encouragements" in db.keys():
options = options.extend(db['encouragements'])
推荐阅读
- java - 导入 io.restassured.RestAssured 无法解决
- bash - Bash - 在文件列表中搜索选择性文件
- android - 无法编辑 Android Studio 构建文件
- python - Kivy reload() 图像未在应用程序窗口中更新
- cakephp - 如何修复“_existsIn' => '此值不存在'” Cakephp
- reactjs - 覆盖生成的打字稿 .d.ts 文件 (React)
- r - 从 R Dataframe 中具有相同时间或值的行列表中获取最后一行
- json - 从 JSON 为 Html 帮助器文本框赋值
- python - 需要使用 x**0.5 计算的 python 平方根
- c++ - 我的代码使用 strchr 有什么问题