【问题标题】:How to split a string based on substring in a python dictionary limited by Class如何根据类限制的python字典中的子字符串拆分字符串
【发布时间】:2016-11-20 14:11:12
【问题描述】:

所以我有课

MyClass
    MyClass things

在我的主要功能中,我有一个字典来跟踪每个对象及其属性,如下所示:

dict = {
        'obj1':'[information string]'
        'obj2':'[information string2]'
         and so on
        }

我正在尝试获取信息字符串的特定信息,如果我能够根据子字符串拆分信息字符串,我将能够做到这一点,因为信息字符串的格式是像这样:

'value1, value2, AlwaysHere: value3'

如果我能够根据 'AlwaysHere' -substring 拆分字符串,我将能够根据需要使用 value3。有没有其他方法可以从嵌套字典中获取 value3 或者如何拆分信息字符串?我已经试过了:

type3 = dict[obj#].split("AlwaysHere ")

它导致消息失败:

AttributeError: 'list' object has no attribute 'strip' 

【问题讨论】:

  • 你真的有dict吗?目前你正在显示一个 set-literal(或者那些 : 应该在字符串之外?)......另外 - 你用 dict 做什么 -类已经可以跟踪它们自己的属性等......(例如:信息不应该是类(实例)的属性而不是字典的任何原因?)
  • 我不能(或至少不知道如何)使用类的属性来做这件事的原因是因为我的代码必须有一个循环,用户输入对象及其起始属性, 并且 "objname = input("put obj here" 只会覆盖每个循环的前一个条目/条目。这就是我有字典的原因 - 保存我的 Class 函数为用户输入提供的值。

标签: class dictionary python-3.3


【解决方案1】:

你的字典定义是错误的 应该是

dict = {
        'obj1':'[information string]',
        'obj2':'[information string2]',
         and so on
        }

字符串也可以按照你想要的方式拆分, "value1, value2, AlwaysHere: value3".split("AlwaysHere:")

会给

['value1, value2, ', ' value3']

【讨论】:

  • 嗯,这是我的字典,在我输入几个输入后直接从我的代码中复制:{obj1: 'val1, val2, AlwaysHere: val3', obj2: 'val1, val2, AlwaysHere: val3'}
【解决方案2】:

我有点笨,我在早些时候失败了

MyDict[objname] = MyClass(stuff)

但是现在当我第二次尝试它时,它就像这样,因为我能够调用

MyDict[objname] 

对于对象

【讨论】:

    猜你喜欢
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多