Dumb Stupid Question About List and String
MRAB
python at mrabarnett.plus.com
Tue Aug 31 15:25:46 EDT 2010
On 31/08/2010 19:57, Alban Nona wrote:
> Hi all,
>
> Im stuck on this problem:
> I have a function which return me a list of string (basically the result
> looks like: ["FN067_098_MEN", FN067_098_JIN", FN067_098_BG"]
> In other hand, I have another list full of that kind of entries:
> ["FN067_098_MEN_Hair_PUZ_v001.0001.exr","FN067_098_JIN_Hair_SPC_v001.0001.exr","FN067_098_MEN_Jin_MVE_v001.0001.exr","FR043_010_GEN_NRM_v001.0001.exr"]
>
> I would like to do something like this:
>
> myFirstList = ["FN067_098_MEN", FN067_098_JIN", FN067_098_BG"]
> mySecondList =
> ["FN067_098_MEN_Hair_PUZ_v001.0001.exr","FN067_098_JIN_Hair_SPC_v001.0001.exr","FN067_098_MEN_Jin_MVE_v001.0001.exr","FR043_010_GEN_NRM_v001.0001.exr"]
>
> for n in myFirstList:
> if n in mySecondList:
> mySecondList.remove(n)
>
> In fact, what I want to do it to remove entries with the secondlist
> which content the entries of the first one. But it seems to not work
> like this.
> Someone can help me please ? did I miss something ?
>
Your code is asking whether, for example, "FN067_098_MEN" is in
mySecondList. It isn't. mySecondList contains
"FN067_098_MEN_Hair_PUZ_v001.0001.exr", but that's not the same as
"FN067_098_MEN".
If I understand you correctly, you want to remove entries from
mySecondList which have an entry of myFirstList as a substring.
Here's one solution:
result_list = []
for second in mySecondList:
if not any(first in second for first in myFirstList):
result_list.append(second)
mySecondList = result_list
More information about the Python-list
mailing list