Posts: 42
Threads: 13
Joined: Aug 2021
Newbie here. Struggling with this simple problem.
x2=[[2,4,6],[1,3,5],[7,8,9]]
Want to change to
x2=[[2,4,6],[2,4,6],[8,8,10]]
A. Change odd numbers to the next available even numbers, i.e., 1 to 1+1, 3 to 3+1 etc.
B. x2[0] will give me the 1st list. How can I get the individual numbers in that list?
Thanks.
Posts: 1,838
Threads: 2
Joined: Apr 2017
Use a for loop/compression?
Posts: 42
Threads: 13
Joined: Aug 2021
(Aug-08-2021, 05:38 AM)ndc85430 Wrote: Use a for loop/compression? Thanks.
Appreciate more infor.
My plan is to look at each number in the lists and then do the odd to even number correction. But cannot extract the individual numbers, but the whole lists.
Posts: 1,838
Threads: 2
Joined: Apr 2017
Are you not allowed to look at the individual values in the list? If not, why not?
If you are, then do you know how to use a for loop or comprehension? If not, look those things up.
Posts: 582
Threads: 1
Joined: Aug 2019
Hi @ plumberpy,
Please read the tutorial of lists. The last example of this chapter 3.1.3 answers your question.
Posts: 42
Threads: 13
Joined: Aug 2021
(Aug-08-2021, 07:31 AM)ibreeden Wrote: Hi @plumberpy,
Please read the tutorial of lists. The last example of this chapter 3.1.3 answers your question.
Noted and thanks.
The trick is to use x[ ] [ ] to get the required data for a list within a list. Did not know that. Too used to x( , ) format. Maybe future Python upgrade can simplify the syntax to x[ , ]. Ha.
I will play around with x[ ] [ ] to solve my problem.
Many thanks.
Posts: 42
Threads: 13
Joined: Aug 2021
(Aug-08-2021, 06:25 AM)ndc85430 Wrote: Are you not allowed to look at the individual values in the list? If not, why not?
If you are, then do you know how to use a for loop or comprehension? If not, look those things up.
Thanks.
Tried out a comprehension example. It works for strings but I cannot get it to do what I want with the numbers in the second layer in a list.
Cheerio.
Posts: 1,144
Threads: 114
Joined: Sep 2019
here is one way
#! /usr/bin/env python3
x = [[2, 4, 6], [1, 3, 5], [7, 8, 9]]
for inner_list in x:
for num in range(0, len(inner_list)):
if inner_list[num] % 2 != 0:
inner_list[num] = inner_list[num] + 1
print(x) Output: [[2, 4, 6], [2, 4, 6], [8, 8, 10]]
Posts: 42
Threads: 13
Joined: Aug 2021
(Aug-08-2021, 10:40 AM)menator01 Wrote: here is one way
#! /usr/bin/env python3
x = [[2, 4, 6], [1, 3, 5], [7, 8, 9]]
for inner_list in x:
for num in range(0, len(inner_list)):
if inner_list[num] % 2 != 0:
inner_list[num] = inner_list[num] + 1
print(x) Output: [[2, 4, 6], [2, 4, 6], [8, 8, 10]]
Many many thanks!
Yours is a lot simpler than what I have in mind.
Cheerio.
|