首页 > 编程问答 >迭代字符串列表以检索字符串组

迭代字符串列表以检索字符串组

时间:2024-07-26 14:04:27浏览次数:8  
标签:python python-3.x

给定以下列表:

inp = ["arg1:", "list", "of", "args", "arg2:", "other", "list"]

如何开发这样的字典?

out = {"arg1": ["list", "of", "args"], "arg2": ["other", "list"]}

这基本上是这样的情况:

  • 循环输入列表,直到找到以冒号为后缀的元素(例如 arg1: )| ||使用它(不带冒号)在字典中创建一个值为空列表的键
  • 继续循环输入列表,将每个元素添加到该键的列表值中,直到找到另一个带有冒号的元素
  • 冲洗并重复,直到所有元素都以这种方式处理
  • 其他示例是:

这感觉像

inp = ["test:", "one", "help:", "two", "three", "four"]
out = {"test": ["one"], "help": ["two", "three", "four"]
---
inp = ["one:", "list", "two:", "list", "list", "three:", "list", "list", "list"]
out = {"one": ["list"], "two": ["list", "list"], "three": ["list", "list", "list"]}

应该 相对简单(尽管可能不是一句话!)但是我就是无法理解它。 任何建议表示赞赏。

Any advice appreciated.


当然,以下是如何在 Python 中执行此操作:

def process_list(inp):
    out = {}
    current_key = None
    for item in inp:
        if item.endswith(":"):
            current_key = item[:-1]  # 删除冒号
            out[current_key] = []
        elif current_key:
            out[current_key].append(item)
    return out

inp = ["arg1:", "list", "of", "args", "arg2:", "other", "list"]
out = process_list(inp)
print(out)

inp = ["test:", "one", "help:", "two", "three", "four"]
out = process_list(inp)
print(out)

inp = ["one:", "list", "two:", "list", "list", "three:", "list", "list", "list"]
out = process_list(inp)
print(out)

此代码执行以下操作:

  1. 初始化 一个空字典 out 和一个名为 current_key 的变量,最初设置为 None 以跟踪当前键。

  2. 迭代 输入列表 inp

  3. 对于每个 item

  4. 检查 item 是否以冒号 ( : ) 结尾。
  5. 如果是 ,则它是一个新键。
    • 从项目中删除冒号以获取 current_key
    • out 中使用 current_key 创建一个新条目,其值为一个空列表 []
  6. 否则 ,如果 current_key 不是 None (表示我们有了一个活动键):

    • item 附加到 out current_key 对应的列表中。
  7. 返回 生成的字典 out

此代码有效地将的输入列表解析为所需格式的字典。

标签:python,python-3.x
From: 78794566

相关文章

  • IT实战课堂计算机毕业设计源码精品基于Python的高校教育教材采购出入库进销存储信息管
    项目功能简介:《[含文档+PPT+源码等]精品基于Python的高校教育教材信息管理系统设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!软件开发环境及开发工具:开......
  • 为什么我的 Python 脚本失败并出现 TypeError?
    我正在编写一个Python脚本,该脚本应该计算数字列表的总和。但是,当我运行代码时遇到TypeError这是一个最小的例子:numbers=[1,2,3,'4']total=sum(numbers)print(total)Theerrormessageis:TypeError:unsupportedoperandtype(s)for+:'int'and'str......
  • 如何通过socks代理传递所有Python的流量?
    有如何通过http代理传递所有Python的流量?但是,它不处理sock代理。我想使用sock代理,我们可以通过ssh隧道轻松获得它。ssh-D5005user@server你可以使用socks库,让你的Python代码通过SOCKS代理传递所有流量。这个库可以让你在套接字级别上指定代......
  • 如何在streamlit python中流式传输由LLM生成的输出
    代码:fromlangchain_community.vectorstoresimportFAISSfromlangchain_community.embeddingsimportHuggingFaceEmbeddingsfromlangchainimportPromptTemplatefromlangchain_community.llmsimportLlamaCppfromlangchain.chainsimportRetrievalQAimports......
  • python mysql操作
    pipinstallmysql-connector-pythonimportmysql.connector#配置数据库连接参数config={'user':'your_username','password':'your_password','host':'your_host','database'......
  • Python 中的面向对象编程
    一.介绍在本文中,我们将使用Python中的类和对象来探索基本的OOP概念。面向对象编程(OOP)是一种强大的方法,可帮助开发人员组织代码,使其易于理解、重用和维护。Python是一种灵活的语言,可以很好地支持OOP概念。1.类和对象类是创建对象的蓝图。它定义了该类的对象将......
  • 学习资源系列之《Python深度学习基于PyTorch》
     前言近期应部分读者朋友的强烈邀请,希望推荐一本python深度学习实操的书籍。呐,今天为大家推荐小编偶然发现的这一本珍藏好书:《Python深度学习基于PyTorch》,文末附电子版获取方式《Python深度学习基于PyTorch》BriefIntroduction前言面对众多的深......
  • 如何使用Python实现语音转文字/字幕
    文章目录......
  • Python 教程(三):字符串特性大全
    目录专栏列表前言1.字符串基础2.字符串方法字符串查询字符串修改字符串切片3.字符串格式化旧式格式化(`%`操作符)`str.format()`方法f-string(Python3.6+)4.字符串编码5.Unicode和ASCII6.正则表达式7.字符串比较8.字符串连接9.字符串不可变性10.字符串的内......
  • python+flask计算机毕业设计新冠肺炎疫情人员统计及打卡系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景自新冠肺炎疫情爆发以来,全球公共卫生体系面临前所未有的挑战。疫情防控工作的高效开展,依赖于对人员流动、健康状况及疫情数据的精准掌握与......