gpt4 book ai didi

python - 列表理解 - 迭代嵌套列表

转载 作者:行者123 更新时间:2023-12-01 03:54:16 25 4
gpt4 key购买 nike

我正在尝试编写一个函数来搜索整个嵌套列表以返回包含特定单词的所有列表,但这仅返回None

word = "what song?"
def searchSong(mp3_list, word):
search = input((word))
match = [i for i in mp3_list if search in i[2]]
for confirmed in match:
print(confirmed[0],'\n', confirmed[1],'\n', confirmed[2])

print(searchSong(mp3_list, word))

当我进行比较测试时,match 变量仍然不返回任何内容:

mp3_list = [["Eric Clapton","Tears in heaven","Rush"],["Neil Young", "Heart of gold", "Harvest"]]
match = [i for i in mp3_list if 'heaven' in i[2]]
print(match) #returns []

尽管语法看起来完全相同,但这仍然有效:

li = [["0", "20", "ar"], ["20", "40", "asdasd"], ["50", "199", "bar"]]
match = [i for i in li if 'ar' in i[2]]
print(match) #returns [['0', '20', 'ar'], ['50', '199', 'bar']]

任何帮助将不胜感激:)

最佳答案

“heaven”出现在 ["Eric Clapton","Tears in heaven","Rush"] 中的第二个元素中,但您正在检查第三个​​ 元素 (i[2])。 Python 数组从 0 开始索引,而不是 1。(但您似乎知道这一点,因为您的第二个示例在 i[2] 中查找“ar”,这是正确的。)

此外,searchSong() 不会返回任何内容,因此默认情况下它始终返回 None。

关于python - 列表理解 - 迭代嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37770296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com