2015-07-04 117 views
-1

我想从下面列表 -'STR' 对象没有属性 '删除'

列表中删除362968 = [362976,362974,362971,362968,362969]

代码 -

list.remove(362968) 

我收到错误: '海峡' 对象有没有属性 '删除'

实际代码 -

def matchmaker(): 
exportersfree = exporters[:] 
engaged = {} 
exprefers2 = copy.deepcopy(exprefers) 
imprefers2 = copy.deepcopy(imprefers) 
while exportersfree: 
    exporter = exportersfree.pop(0) 
    exporterslist = exprefers2[exporter] 
    importer = exporterslist.pop(0) 
    match = engaged.get(importer) 
    if not match: 
     # impo's free 
     engaged[importer] = exporter #both parties are added to the engaged list 
     importerslist = imprefers2[importer] 
     for z in range (importerslist.index(exporter)-1): 
        importerslist.index(exporter) 
        exprefers2[importerslist[z]].remove(importer) 
     del importerslist[0:(importerslist.index(exporter)-1)] 

    else 
      engaged[importer] = exporter 
      if exprefers2[match]: 
       # Ex has more importers to try 
       exportersfree.append(match) 

return engaged 
+0

德尔列表[3],试试这个 –

+0

我宁愿删除的项项目本身。 – Karvy1

+2

嗯,这是不正确的。这两行代码在Python2.7中工作正常。因为这是列表构造函数,所以还要将列表名称更改为“list”以外的内容。 – CristiFati

回答

2

没有额外的代码来真正调试,exprefers2显然是一个字符串的字典;但是,如果你真的想删除它。您可以将字符串转换为一个列表,或EVAL将它转换成一个列表中的值,则可以援引使用list.remove

import ast 

list = [1, 2, 3, 4, 5, 6, 7] 
list.remove(5) 
print list 
#[1, 2, 3, 4, 6, 7] 


#Data Structure you most likely have 
import_list = [1, 2] 
exprefers2 = {1: "abc", 2: "xyz"} 
print exprefers2[import_list[1]] 
#xyz 


#Or need to eval the string of a list 
import_list = [1, 2] 
exprefers2 = {1: u'[ "A","B","C" , " D"]', 2: u'[ "z","x","y" , " y"]'} 
exprefers2[import_list[1]] = ast.literal_eval(exprefers2[import_list[1]]) 
exprefers2[import_list[1]].remove("y") 
print exprefers2[import_list[1]] 
#['z', 'x', ' y'] 
1

试试这样,然后,将您的列表命名为“a”。

a = [362976,362974,362971,362968,362969] 
    a.remove(362968) 
    print a 
+0

我有我的列表名称为'exprefers2 [importerslist [z]]'和exprefers2是一个字典和importerslist是一个列表 – Karvy1

相关问题