(๑•॒̀ ູ॒•́๑)嘟嘟嘟 2022-04-15 08:17 采纳率: 73.7%
浏览 53
已结题

Python列表索引必须是整数或片,而不是列表如何解决

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
'''
1.将下列鸡尾酒的数据保存为字典数据,并回答下列问题
(1)哪些鸡尾酒含有伏特加?
(2)那些鸡尾酒是含有伏特加,但是不含有乳糖或者苦艾酒的?
'''
mydisc = {"马提尼":["伏特加","苦艾酒"],"黑俄罗斯":["伏特加","咖啡酒"],"白俄罗斯":["乳糖","咖啡酒","伏特加"],"曼哈顿":["黑麦威士忌","苦艾酒","比特酒"],"螺丝起子":["橙汁","伏特加"]}
a = list(mydisc.values())

for i in a:
#i = 0,i=1,i=2,i=3,i=4
    if "伏特加" in a[i]:
        b = list(mydisc.keys())[list(mydisc.values()).index(a[i])]
        print(b)

运行结果及报错内容

Traceback (most recent call last):
File "E:\pythonProject\venv\test9.py", line 6, in
if "伏特加" in a[i]:
TypeError: list indices must be integers or slices, not list

我的解答思路和尝试过的方法
我想要达到的结果

遍历a[i]

  • 写回答

1条回答 默认 最新

  • A Python 萌新花花 2022-04-15 08:42
    关注

    你a = list(mydisc.values())的时候,相当于把字典里的值存进了一个list里面。这时候你要注意,存进去的是原来的值,就是以list形式存进去的。你明显把这个当成了会把值的那个list拆开,变成str存进去。事实上你这个代码创造了一个二维数组。
    你只要把所有的a[i]改成 i 就好了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月15日
  • 已采纳回答 4月15日
  • 创建了问题 4月15日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看