drug_input=['MORPHINE','CODEINE']
def some_function(drug_input)
generic_drugs_mapping={'MORPHINE':0,
'something':1,
'OXYCODONE':2,
'OXYMORPHONE':3,
'METHADONE':4,
'BUPRENORPHINE':5,
'HYDROMORPHONE':6,
'CODEINE':7,
'HYDROCODONE':8}
row
목록입니다.python : 목록에서 값을 없애는 중
나는 그것이 0이 경우에, 그 그 drug_input
정의를 제외한 row[..]=''
의 모든 구성원을 설정하려는, 그리고 7
그래서 row[1,2,3,4,5,6,8]=''
row
경우는 처음입니다 :
row[0]='blah'
row[1]='bla1'
...
...
row[8]='bla8'
I이 필요합니다
row[0]='blah' (same as before)
row[1]=''
row[2]=''
row[3]=''
...
...
row[7]='bla7'
row[8]=''
어떻게해야합니까?
from collections import defaultdict # put this at the top of the file
class EmptyStringDict(defaultdict):
__missing__ = lambda self, key: ''
newrow = EmptyStringDict()
for drug in drug_input:
keep = generic_drugs_mapping[drug]
newrow[keep] = row[keep]
saved_len = len(row) # use this later if you need the old row length
row = newrow
대부분 빈 문자열이 낭비의 목록을 갖는 당신 정말이 목록으로 필요하지 않는 한
목록을 사용하지 마십시오. 사전을 사용하십시오. –
당신이 무엇을 요구하고 있는지 잘 모르겠습니다. 'row'의 완전한 가치는 결국 무엇이되어야합니까? 빈 문자열이 아닌 값은 무엇이되어야합니까? –
당신은 거의 틀림없이 Doing It Wrong입니다. 스파 스가 밀도보다 낫습니다. –