将 Odd/Even 映射到嵌套列表
Mapping Odd/Even to nested lists
所以我正在尝试使用循环操作列表。通过将它们更改为偶数或奇数,将我的列表更改为每个整数的字符串。
Input_List = [[1,2,3], [4,5,6], [7,8,9]]
我想输出的是
Input_List = [['odd','even','odd'],['even','odd','even'],['odd','even','odd']]
这是我到目前为止写的代码:
for element in Input_List:
for item in element:
if item %2==0:
Input_List[element][x]="Even"
else:
Input_List[element][x]="Odd"
x+=1
感谢任何帮助。
你已经很接近了,你的程序需要做的最小改动是
Input_List=[[1,2,3],[4,5,6],[7,8,9]]
for i,element in enumerate(Input_List):
for j,item in enumerate(element):
if item %2==0:
Input_List[i][j]="Even"
else:
Input_List[i][j]="Odd"
print Input_List
在这里,我使用 enumerate
代替,这是因为您可以使用索引来引用列表中的元素。
您可以使用 map
和列表推导式
轻松完成
>>> l=[[1,2,3],[4,5,6],[7,8,9]]
>>> [list(map(lambda x: 'Odd' if x%2 != 0 else 'Even',i)) for i in l]
[['Odd', 'Even', 'Odd'], ['Even', 'Odd', 'Even'], ['Odd', 'Even', 'Odd']]
小记 - 你的列表缺少逗号,[[1,2,3][4,5,6][7,8,9]]
必须是[[1,2,3],[4,5,6],[7,8,9]]
另一种方法是在嵌套列表组合中使用逻辑与运算符 (&
),就像 Padraic 在
中提到的那样
>>> [['odd' if i & 1 else 'even' for i in sub] for sub in l]
[['odd', 'even', 'odd'], ['even', 'odd', 'even'], ['odd', 'even', 'odd']]
您可以使用嵌套列表理解:
>>> [['Even' if j%2==0 else 'Odd' for j in i] for i in Input_List]
[['Odd', 'Even', 'Odd'], ['Even', 'Odd', 'Even'], ['Odd', 'Even', 'Odd']]
input_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print [['odd' if i%2 else 'even' for i in sublist]
for sublist in input_list]
不知道为什么没有人做o̶b̶v̶i̶o̶u̶s̶:
[[['Even','Odd'][n%2] for n in i] for i in Input_List]
编辑:我被告知我拼错了 "obfuscated"(虽然我不同意 :-)
所以我正在尝试使用循环操作列表。通过将它们更改为偶数或奇数,将我的列表更改为每个整数的字符串。
Input_List = [[1,2,3], [4,5,6], [7,8,9]]
我想输出的是
Input_List = [['odd','even','odd'],['even','odd','even'],['odd','even','odd']]
这是我到目前为止写的代码:
for element in Input_List:
for item in element:
if item %2==0:
Input_List[element][x]="Even"
else:
Input_List[element][x]="Odd"
x+=1
感谢任何帮助。
你已经很接近了,你的程序需要做的最小改动是
Input_List=[[1,2,3],[4,5,6],[7,8,9]]
for i,element in enumerate(Input_List):
for j,item in enumerate(element):
if item %2==0:
Input_List[i][j]="Even"
else:
Input_List[i][j]="Odd"
print Input_List
在这里,我使用 enumerate
代替,这是因为您可以使用索引来引用列表中的元素。
您可以使用 map
和列表推导式
>>> l=[[1,2,3],[4,5,6],[7,8,9]]
>>> [list(map(lambda x: 'Odd' if x%2 != 0 else 'Even',i)) for i in l]
[['Odd', 'Even', 'Odd'], ['Even', 'Odd', 'Even'], ['Odd', 'Even', 'Odd']]
小记 - 你的列表缺少逗号,[[1,2,3][4,5,6][7,8,9]]
必须是[[1,2,3],[4,5,6],[7,8,9]]
另一种方法是在嵌套列表组合中使用逻辑与运算符 (&
),就像 Padraic 在
>>> [['odd' if i & 1 else 'even' for i in sub] for sub in l]
[['odd', 'even', 'odd'], ['even', 'odd', 'even'], ['odd', 'even', 'odd']]
您可以使用嵌套列表理解:
>>> [['Even' if j%2==0 else 'Odd' for j in i] for i in Input_List]
[['Odd', 'Even', 'Odd'], ['Even', 'Odd', 'Even'], ['Odd', 'Even', 'Odd']]
input_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print [['odd' if i%2 else 'even' for i in sublist]
for sublist in input_list]
不知道为什么没有人做o̶b̶v̶i̶o̶u̶s̶:
[[['Even','Odd'][n%2] for n in i] for i in Input_List]
编辑:我被告知我拼错了 "obfuscated"(虽然我不同意 :-)