- #1

- 47

- 0

I have a list of pairs say Li={{a,x},{b,y},{c,z}...}. I want to eliminate from this list all pairs that have their second part i.e the x, y, z.....>1 and I was thing of using an If loop. Can anyone tell me how please...

Thanks....

You are using an out of date browser. It may not display this or other websites correctly.

You should upgrade or use an alternative browser.

You should upgrade or use an alternative browser.

- Mathematica
- Thread starter Physicslad78
- Start date

- #1

- 47

- 0

I have a list of pairs say Li={{a,x},{b,y},{c,z}...}. I want to eliminate from this list all pairs that have their second part i.e the x, y, z.....>1 and I was thing of using an If loop. Can anyone tell me how please...

Thanks....

- #2

- 103

- 0

There is probably a more elegant way of doing it (it wouldn't surprise me if Mathematica has some built in function for this), but this should get you started:

Code:

```
L2 = {};
Do[
If[Li[[i, 2]] <= 1, AppendTo[L2, Li[[i]]]]
,{i, Length[Li]}]
L1 = L2;
```

Last edited:

- #3

- 1

- 0

<I think this question involving loop but i ddnt how to solve it. anyone ?>

- #4

- 1,069

- 29

In[1]:= v={{1,7},{2,-5},{3,0},{4,9}};DeleteCases[v,{x_,y_/;y>1}]

Out[2]= {{2,-5},{3,0}}

(*one method of printing using a For*)

In[3]:= For[k=1,k≤10,k++,

If[EvenQ[k],Print[k/2],Print[2k]]

]

From In[3]:= 2

From In[3]:= 1

From In[3]:= 6

From In[3]:= 2

From In[3]:= 10

From In[3]:= 3

From In[3]:= 14

From In[3]:= 4

From In[3]:= 18

From In[3]:= 5

(*another method using pattern matching*)

In[4]:= k=.; (*clear that value assigned to k*)

Range[10]/.{k_/;EvenQ[k]->k/2,k_/;OddQ[k]->2k}

Out[5]= {2,1,6,2,10,3,14,4,18,5}

Share: