# Select Element from Different Lists using Multiple Criteria

I have the following basic question. I have created the following lists of number

list1= {0.17280394634580676, 0.16592518527179198,  0.16565012961313136, 0.16913887913796202, 0.17532555997800134, 0.1709799900459552, 0.1727886004102705, 0.17309929761671264,  0.16684725512423282, 0.19030846458674544}
list2 = {0.17386342603139585, 0.19088582236184554, 0.23203374070590962, 0.2369946021621591, 0.1952022726800119, 0.23686981987007244, 0.1980693337605245, 0.23829147261528855,   0.14379878667926133, 0.18123073864910402}


and i want to select only these elements that have simultaneously a larger value from 0.17 in list1 and a value that is lower than 0.19 in list2 and append them in a new list.

Any ideas?

criteria = {criterion1, criterion2} = {GreaterThan[.17], LessThan[.19]};

Join @@ MapThread[Select[#]@#2 &, {criteria, {list1, list2}}]

{0.172804, 0.175326, 0.17098, 0.172789, 0.173099, 0.190308,
0.173863,0.143799, 0.181231}


"how can I also find the positions in lists1 and 2 of each element that is appented in the joint list?"

KeySelect[criterion1] @ PositionIndex[list1]

<|0.172804 -> {1}, 0.175326 -> {5}, 0.17098 -> {6}, 0.172789 -> {7},

 0.173099 -> {8}, 0.190308 -> {10}|>

KeySelect[criterion2] @ PositionIndex[list2]

<|0.173863 -> {1}, 0.143799 -> {9}, 0.181231 -> {10}|>

• Dear kglr thank you for your quick response. This is a really nice solution! Do you have any idea, how can I also find the positions in lists1 and 2 of each element that is appented in the joint list? – Smaug Jun 17 '20 at 9:50
• @Smaug, please see the update. – kglr Jun 17 '20 at 9:55
• Thank you very much for your time. This is exactly what I was looking for! :D – Smaug Jun 17 '20 at 9:58