抽象工厂与工厂方法(范围)(Abstract Factory vs Factory Method (scope))
工厂方法是类设计模式。 Abstract Factory使用了许多Factory方法。 为什么抽象工厂是对象设计模式,而不是类设计模式? 抽象工厂推迟实例化到哪个对象?
Factory method is class design pattern. Abstract Factory uses many Factory methods. Why Abstract Factory is object design pattern, not class design pattern? Abstract Factory defer instantiation to which object?
原文:https://stackoverflow.com/questions/11303636
更新时间:2023-08-11 11:08
最满意答案
如果是我,我不会使用
re
。 我会逐行遍历数据,在我去的时候将值分配给适当的dict
:from pprint import pprint data = ''' do.ma.in.1 key1a: value1a key1b: value1b key1c: do.ma.in.2 key2a: value2a key2b: value2b ''' key = None result = {} for line in data.splitlines(): if not line.strip(): continue line = line.split(':', 1) if len(line) == 1: key = line[0].strip() result[key] = {} elif len(line) == 2: result[key][line[0].strip()] = line[1].strip() pprint(result)
结果:
{'do.ma.in.1': {'key1a': 'value1a', 'key1b': 'value1b', 'key1c': ''}, 'do.ma.in.2': {'key2a': 'value2a', 'key2b': 'value2b'}}
If it were me, I wouldn't use
re
. I would step through the data, line by line, assigning the values to the appropriatedict
as I go:from pprint import pprint data = ''' do.ma.in.1 key1a: value1a key1b: value1b key1c: do.ma.in.2 key2a: value2a key2b: value2b ''' key = None result = {} for line in data.splitlines(): if not line.strip(): continue line = line.split(':', 1) if len(line) == 1: key = line[0].strip() result[key] = {} elif len(line) == 2: result[key][line[0].strip()] = line[1].strip() pprint(result)
Result:
{'do.ma.in.1': {'key1a': 'value1a', 'key1b': 'value1b', 'key1c': ''}, 'do.ma.in.2': {'key2a': 'value2a', 'key2b': 'value2b'}}
相关问答
更多-
JSON.parse内置于JavaScript中。 另外,JSON只接受" ,而不是' ;所以,我添加了一个替换函数调用。 JSON.parse is built into JavaScript. Additionally, JSON only accepts ...
-
使用ast.literal_eval 这比eval更安全,因为它只评估有效的python数据类型 s = "[{'P_Key': 'val1', 'Price': '3.95'}, {'P_Key': 'val2', 'Price': '2.2'}, {'P_Key': 'val3', 'Price': '0.4'}]" import ast ast.literal_eval(s) # [{'P_Key': 'val1', 'Price': '3.95'}, {'P_Key': 'val2', 'Price ...
-
将字典转换为字符串(Convert Dictionary to String)[2022-06-30]
dic={'value':'123','sort':'desc','type':'float'} str='' for i in dic: str = str + i + '=' + dic[i] + '&' str[:-1] 或者使用列表理解并减少: reduce(lambda x,y: x+y, [i+'='+dic[i]+'&' for i in dic])[:-1] dic={'value':'123','sort':'desc','type':'float'} st ... -
从文档 : urllib.urlencode ( query [, doseq ]) 将映射对象或两个元素元组的序列转换为 “百分比编码”字符串...一系列由'&'字符分隔的key=value对... dict是一个映射。 Python 3 urllib.parse.urlencode(query, doseq=False, [...]) Convert a mapping object or a sequence of two-element tuples, which may contain str o ...
-
从Python 2.6开始,您可以使用内置的ast.literal_eval : >>> import ast >>> ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}") {'muffin': 'lolz', 'foo': 'kitty'} 这比使用eval更安全。 正如其自己的文档所说: >>> help(ast.literal_eval) Help on function literal_eval in module ast: liter ...
-
我会说你正在尝试的是误入歧途。 您不应该使用CoreData来存储字符串。 您应该使用CoreData,因为它应该被用作关系数据库。 创建表,然后使用JSON字典以填充它们的方式填充这些表。 这就是说:类NSJSONSerialization有一个方法将数组或字典转换为NSData,以及一种将NSData转换为数组或字典的方法。 因此,要创建字符串,请将NSDictionary转换为NSData,从中创建NSString,存储字符串。 要将字符串转回NSDictionary,请从中创建NSData对象,使用 ...
-
分析XML结构化数据(Analysis of XML structured data)[2022-02-17]
是这样的↓吗? XML: -
我的猜测是你这样做: baddata = numpy.array([('1', 2814), ('1', 1185), ('1', 6836), ('2', 7057), ('1', 5403), ('1', 1642), ('1', 3967), ('2', 7982), ('1', 6139), ('1', 9934), ('2', 9932), ('1', 3044), ('1', 2769)], dtype=[('name', '如果是我,我不会使用re 。 我会逐行遍历数据,在我去的时候将值分配给适当的dict : from pprint import pprint data = ''' do.ma.in.1 key1a: value1a key1b: value1b key1c: do.ma.in.2 key2a: value2a key2b: value2b ''' key = None result = {} for line in data.splitlines(): i ...
将python列表转换为numpy结构化数组时保持字符串(Maintain strings when converting python list into numpy structured array)[2022-03-22]
如果打印出阵列并仔细查看,则可以看到问题: >>> numpy.array(data, dtype=[('label', str), ('x', float), ('y', float)]) array([('', 1.0, 2.0), ('', 2.0, 4.0), ('', 3.0, 6.0)], dtype=[('label', '|S0'), ('x', '相关文章
更多- 研磨设计模式之工厂方法模式(Factory Method)-模式讲解1
- 研磨设计模式之工厂方法模式(Factory Method)-模式讲解2
- 研磨设计模式之工厂方法模式(Factory Method)-模式讲解3
- 研磨设计模式之工厂方法模式(Factory Method)-场景问题
- 研磨设计模式之工厂方法模式(Factory Method)-解决方案
- 研磨设计模式之抽象工厂模式(Abstract Factory)-场景问题
- JAVA设计模式学习5——工厂方法模式
- JAVA设计模式学习6——抽象工厂模式
- Tomcat源码里,return (factory)有特殊作用么
- 设计模式-抽象工厂模式
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。