Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

store values from a loop in a list

Status
Not open for further replies.

Natiya

Programmer
May 14, 2017
12
ES
Hi there,

I'd like to know how to store the values 90 89 88 ...0 -81 -82 ...-90 in a list/array. I thought I could do a for loop and store the iteration variable in the list/array but I'm a bit confused with the syntax. I'm trying to do this:

Code:
for {set i 90} {$i > 0} { incr i -1} {
		
			lappend vector $i
			
		}
		
		for {set i 0} {$i > 91} {incr i -1} {
		
			lappend vector2 $i
			
		}
		
		lappend positions $vector $vector2



However, this is not working properly and what I get is

% $positions
invalid command name "90 {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90} {90 90} {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90} {90 90 90} {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90} {90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1} {}"

Any help will be really appreciated [bigsmile] thank you!
 
I don't understand, if you want to store the values 20 19 18 ...0 -1 -2 ...-20 why you test in your loop {$i > 91}

For example, you can do it like this:
Code:
[COLOR=#a52a2a][b]set[/b][/color] my_list {}

[COLOR=#a52a2a][b]for[/b][/color] {[COLOR=#a52a2a][b]set[/b][/color] i [COLOR=#ff00ff]5[/color]} {[COLOR=#008b8b]$i[/color] >= -[COLOR=#ff00ff]5[/color]} {[COLOR=#a52a2a][b]incr[/b][/color] i -[COLOR=#ff00ff]1[/color]} {
[COLOR=#0000ff]  #puts "appending: $i"[/color]
  [COLOR=#a52a2a][b]lappend[/b][/color] my_list [COLOR=#008b8b]$i[/color]
}

[COLOR=#0000ff]# print list[/color]
[COLOR=#a52a2a][b]puts[/b][/color] [COLOR=#ff00ff]"my_list = ( [/color][[COLOR=#a52a2a][b]join[/b][/color] [COLOR=#008b8b]$my_list[/color] [COLOR=#ff00ff]"; "[/color]][COLOR=#ff00ff] )[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color]

[COLOR=#0000ff]# iterate over all list elements[/color]
[COLOR=#a52a2a][b]puts[/b][/color] [COLOR=#ff00ff]"my_list = "[/color]
[COLOR=#a52a2a][b]foreach[/b][/color] el [COLOR=#008b8b]$my_list[/color] {
  [COLOR=#a52a2a][b]puts[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#008b8b]$el[/color][COLOR=#ff00ff]"[/color]
}

Output:
Code:
$ tclsh natiya.tcl 
my_list = ( 5; 4; 3; 2; 1; 0; -1; -2; -3; -4; -5 )

my_list = 
5
4
3
2
1
0
-1
-2
-3
-4
-5
 
Sorry, there were a mistake in the lists boundaries [ponder] but you understood what I needed! Thank you so much!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top