[Tutor] how to unique the string
lina
lina.lastname at gmail.com
Sun Oct 23 10:33:52 CEST 2011
On Sun, Oct 23, 2011 at 12:50 AM, Steven D'Aprano <steve at pearwood.info> wrote:
> lina wrote:
>>
>> Hi,
>>
>> I googled for a while, but failed to find the perfect answer,
>>
>> for a string
>>
>> ['85CUR', '85CUR']
>
>
> That's not a string, it is a list.
>
>
>> how can I unique it as:
>>
>> ['85CUR']
>
> Your question is unclear. If you have this:
>
> ['85CUR', '99bcd', '85CUR', '85CUR']
>
> what do you expect to get?
>
>
> # keep only the very first item
> ['85CUR']
> # keep the first copy of each string, in order
> ['85CUR', '99bcd']
> # keep the last copy of each string, in order
> ['99bcd', '85CUR']
> # ignore duplicates only when next to each other
> ['85CUR', '99bcd', '85CUR']
>
>
> Does the order of the result matter?
>
> If order matters, and you want to keep the first copy of each string:
>
> unique = []
> for item in items:
> if item not in unique:
> unique.append(item)
>
>
> If order doesn't matter, then use this:
>
> unique = list(set(items))
Thanks, this one unique=list(set(item)) works well.
I have a further question:
#!/usr/bin/python3
import os.path
mapping={}
DICTIONARYFILE="dictionary.pdb"
TOBETRANSLATEDFILEEXT=".out"
OUTPUTFILEEXT=".txt"
def generate_dict(dictionarysourcefile):
for line in open(dictionarysourcefile,"r").readlines():
parts=line.strip().split()
mapping[parts[2]]=parts[0]
def translate_process(dictionary,tobetranslatedfile):
results=[]
unique={}
for line in open(tobetranslatedfile,"r").readlines():
tobetranslatedparts=line.strip().split()
results.append(dictionary[tobetranslatedparts[2]])
for residue in results:
if residue not in unique:
unique[residue]=1
else:
unique[residue]+=1
for residue, numbers in unique.items():
print(residue,numbers)
with open(base+OUTPUTFILEEXT,"w") as f:
f.write(str(unique)) ########### How can I output the
results the same as the print one. Thanks.
if __name__=="__main__":
generate_dict(DICTIONARYFILE)
for infilename in os.listdir("."):
base, ext = os.path.splitext(infilename)
if ext == TOBETRANSLATEDFILEEXT:
translate_process(mapping, infilename)
https://docs.google.com/leaf?id=0B93SVRfpVVg3ZTBiYjU1MzYtNTNkMS00ZjQ1LWI4MzEtNDEyZWUwYTFmNjU4&hl=en_GB
https://docs.google.com/leaf?id=0B93SVRfpVVg3ODU4MDlkMDQtOTJmMy00MDJiLTkwM2EtY2EyNTUyZmNhNTNm&hl=en_GB
Welcome anyone help me transform the code to another form.
>
>
>
> --
> Steven
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list