【问题标题】:how to filter string of dictionary from a list of python?如何从python列表中过滤字典字符串?
【发布时间】:2022-01-25 01:50:58
【问题描述】:

我有一个包含字符串的列表,这些字符串可以是字符串中的简单字符串或键值对。请看下面的示例

c = ['Success, no result', 'num_parts: 55', 'num_boards: 2', 'xyz', 'adsqwrqw']

我知道一种使用json.loads() + replace() 方法将字符串转换为字典列表的方法。但条件是将所有元素都作为字典。

但在我的例子中,一个列表包含一个字符串,而字典作为一个字符串。在这种情况下如何过滤?

任何建议

【问题讨论】:

  • 你的问题不清楚。您能否添加更多和准确的详细信息?

标签: python python-3.x


【解决方案1】:

我想你可以通过一个简单的 if 命令检查字符串中是否有 ':':

for string in c:
   if ': ' in string:
      #do something with dictionary string
   else:
      #do something with simple string

【讨论】:

    【解决方案2】:

    您可以在字符串中检查":",因为这是区分字典兼容字符串的关键:-

    lst = ['Success, no result', 'num_parts: 55', 'num_boards: 2', 'xyz', 'adsqwrqw']
    DictL, StrL = [], []
    
    for i in lst:
        if ":" in i:
            DictL.append(i)
        else:
            StrL.append(i)
    

    您还可以将其进一步压缩为这样的列表理解:-

    lst = ['Success, no result', 'num_parts: 55', 'num_boards: 2', 'xyz', 'adsqwrqw']
    
    DictL, StrL = [i for i in lst if ":" in i], [i for i in lst if ":" not in i]
    

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多