如何访问列表中字典的value?获取并打印prodi字段报错求助
问题解决:访问列表中字典的prodi字段并打印
你的原始数据和代码如下:
list_out = [ {'name':'agus', 'prodi':'if'}, {'name':'budi', 'prodi':'ti'}, {'name':'candra', 'prodi':'si'}, ] def sortku(list_): if len(list_)<=1: return list_ if len(list_)==2: return list_ if list_[0]<list_[1] else [list_[1],list_[0]] print(list_out) x=list_["prodi"] print(x)
错误原因分析
- 你直接对整个列表
list_使用["prodi"]索引,但列表仅支持整数索引(如list_[0]),无法用字符串索引。要访问prodi字段,必须先获取列表中的单个字典元素,再对字典使用字符串索引。 - 函数内的排序判断逻辑和你“打印prodi字段”的需求完全无关,属于冗余代码。
- 函数直接打印全局变量
list_out,但参数是list_,应优先使用传入的参数,避免依赖全局变量。
修正后的代码
如果仅需遍历列表并打印每个字典的prodi字段,函数可简化为:
def print_prodi(list_): for item in list_: # 遍历列表中的每个字典,取出prodi字段打印 print(item["prodi"]) # 调用函数 print_prodi(list_out)
运行后输出:
if ti si
如果你的真实需求是按prodi字段排序后再打印,可使用以下代码:
def sort_and_print_prodi(list_): # 按prodi字段对列表排序 sorted_list = sorted(list_, key=lambda x: x["prodi"]) # 遍历排序后的列表,打印每个prodi for item in sorted_list: print(item["prodi"]) # 调用函数 sort_and_print_prodi(list_out)
运行后输出排序结果:
if si ti
内容的提问来源于stack exchange,提问作者BAGAS CAHYO P.
相关产品推荐
相关产品推荐

