Joa*_*oSa 5 python string dictionary list find
我知道这是一个基本问题,但是我是python的新手,无法弄清楚如何解决它。
我有一个类似下一个示例的列表:
entities = ["#1= IFCORGANIZATION($,'Autodesk Revit 2014 (ENU)',$,$,$)";, "#5= IFCAPPLICATION(#1,'2014','Autodesk Revit 2014 (ENU)','Revit');"]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何以"entities"
下列格式将列表中的信息添加到字典中:
dic = {'#1= IFCORGANIZATION' : ['$','Autodesk Revit 2014 (ENU)','$','$','$'], '#5= IFCAPPLICATION' : ['#1','2014','Autodesk Revit 2014 (ENU)','Revit']
Run Code Online (Sandbox Code Playgroud)
我试图用这个做的"find"
,但我发现了以下错误:
'list' object has no attribute 'find'
,
而且我不知道如何在没有查找方法的情况下执行此操作。
Tri*_*max 10
如果您想知道某个值是否在列表中,您可以使用in
,如下所示:
>>> my_list = ["one", "two", "three"]
>>> "two" in my_list
True
>>>
Run Code Online (Sandbox Code Playgroud)
如果您需要获取列表中值的位置,则必须使用index
:
>>> my_list.index("two")
1
>>>
Run Code Online (Sandbox Code Playgroud)
请注意,列表的第一个元素的索引为 0。
您可以用来str.split
处理字符串。首先用 分割每个元素字符串'('
,maxsplit 为 1:
In [48]: dic=dict(e[:-1].split('(', 1) for e in entities) #using [:-1] to filter out ')'
...: print dic
...:
{'#5= IFCAPPLICATION': "#1,'2014','Autodesk Revit 2014 (ENU)','Revit')", '#1= IFCORGANIZATION': "$,'Autodesk Revit 2014 (ENU)',$,$,$)"}
Run Code Online (Sandbox Code Playgroud)
然后将字典中的每个值拆分为','
:
In [55]: dic={k: dic[k][:-1].split(',') for k in dic}
...: print dic
{'#5= IFCAPPLICATION': ['#1', "'2014'", "'Autodesk Revit 2014 (ENU)'", "'Revit'"], '#1= IFCORGANIZATION': ['$', "'Autodesk Revit 2014 (ENU)'", '$', '$', '$']}
Run Code Online (Sandbox Code Playgroud)
请注意,字典中的键值对是无序的,正如您可能会看到的那样,'#1= IFCORGANIZATION'
它首先没有显示。
归档时间: |
|
查看次数: |
25676 次 |
最近记录: |