无法使用嵌套列表作为参数

发布于 2025-01-11 09:32:10 字数 443 浏览 0 评论 0原文

我使用带键的嵌套列表来存储电视频道的信息,而嵌套列表在直接使用时可以正常工作,但如果用作函数中的参数,则会导致错误,这里是我的代码示例

print(get_List() [1]['名称']) --->输出: Harley Davidson Racing TV (720p) [Not 24/7]

从函数调用它

def get_AllName(list):
    channel_names = []
    x=0
    while x<len(list):
        channel_names.append(list()[x]['name'])
        x+=1
    return channel_names
print(get_AllName(get_List()))

我收到此错误 类型错误:“列表”对象不可调用

am using nested lists with key to store tv channels' info, while the nested list works fin when using straight, but would cause an error if used as a parameter in a function here is sample of my code

print(get_List()[1]['name']) ---> output:
Harley Davidson Racing TV (720p) [Not 24/7]

calling it from function

def get_AllName(list):
    channel_names = []
    x=0
    while x<len(list):
        channel_names.append(list()[x]['name'])
        x+=1
    return channel_names
print(get_AllName(get_List()))

I get this error
TypeError: 'list' object is not callable

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

记忆里有你的影子 2025-01-18 09:32:10

list 作为一种类型,实际上是一个可调用的(与注释中建议的相反),并且可以被称为 list() - 它只是返回一个空列表尽管。所以 list()[x]['name'] 实际上是 [][x]['name'] 并且由于第一个列表是空的,所以没有什么可做的用x索引。

get_List() 显然返回一个字典列表,因此要获取名称列表:

def get_names(xs):
    return[x['name'] for x in xs]


print(get_names(get_List()))

或者,没有额外的函数:

print([x['name'] for x in get_List()])

list, as a type, is actually a callable (contrary to what is suggested in the comments), and can be called as list() - it just returns an empty list though. So list()[x]['name'] is effectively [][x]['name'] and since the first list is empty, there's nothing to be indexed with x.

get_List() apparently returns a list of dictionaries, so to get a list of names:

def get_names(xs):
    return[x['name'] for x in xs]


print(get_names(get_List()))

Or, without the extra function:

print([x['name'] for x in get_List()])
遗忘曾经 2025-01-18 09:32:10

用数据类型或特殊关键字命名变量并不是一个好主意。
尝试将其命名为 Listwhole_listsomething,而不是 list

您的代码将转换为:

def get_AllName(whole_list):
    channel_names = []
    x=0
    while x<len(whole_list):
        channel_names.append(whole_list[x]['name'])
        x+=1
    return channel_names
print(get_AllName(get_List()))

It is not a good idea to name variables with data types or special keywords.
Instead of a list, try naming it as List or whole_list or something.

Your code will convert to:

def get_AllName(whole_list):
    channel_names = []
    x=0
    while x<len(whole_list):
        channel_names.append(whole_list[x]['name'])
        x+=1
    return channel_names
print(get_AllName(get_List()))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文