Noo*_*mer 1 python list nested-lists python-3.x
所以我试图用循环来操作列表.通过将列表更改为偶数或奇数,将我的列表更改为每个整数的字符串.
Input_List = [[1,2,3], [4,5,6], [7,8,9]]
Run Code Online (Sandbox Code Playgroud)
我想输出的是
Input_List = [['odd','even','odd'],['even','odd','even'],['odd','even','odd']]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止编写的代码:
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
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
您可以使用嵌套列表解析:
>>> [['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']]
Run Code Online (Sandbox Code Playgroud)
你很近,你的计划所需的最小变化是
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
Run Code Online (Sandbox Code Playgroud)
在这里,我正在使用enumerate,这是因为你可以通过使用它们的索引来引用列表中的元素.
您可以使用a map和list comprehension 轻松完成
>>> 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']]
Run Code Online (Sandbox Code Playgroud)
小注 - 您的列表缺少逗号,[[1,2,3][4,5,6][7,8,9]]必须是[[1,2,3],[4,5,6],[7,8,9]]
另一种方法是&在嵌套列表comp中使用logical和operator ,就像注释中的 Padraic一样
>>> [['odd' if i & 1 else 'even' for i in sub] for sub in l]
[['odd', 'even', 'odd'], ['even', 'odd', 'even'], ['odd', 'even', 'odd']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |