【发布时间】:2021-11-18 16:09:44
【问题描述】:
在 Python 代码中,我有一个这样的元组列表:
file1 = [[('a', -1), ('b', -1), ('c', -1)], [('a', -1), ('b', -1), ('c', 0)], [('a', -1), ('b', -1), ('c', 1)], [('a', 0), ('b', -1), ('c', 1)]]
这是一个包含 51 个项目的列表。我必须将所有的 '-1' 更改为 '0',只要我更改它,我就必须为每次更改创建一个新的元组。例如:第一个元组:[('a', -1), ('b', -1), ('c', -1)] 应该生成三个不同的元组,例如:
(1) [('a', 0), ('b', -1), ('c', -1)], [('a', -1), ('b', 0), ('c', -1)] and (3) [('a', -1), ('b', -1), ('c', 0)].
我尝试将所有元组转换为列表,但它不起作用。我也试过了
for i in file1:
i = list(i)
for j in i:
j = list(j)
if j[1] == -1:
j = (j[0],0)
file2.append(i)
如何解决这个问题?它不会改变任何项目。
【问题讨论】:
-
第二个列表
[('a', -1), ('b', -1), ('c', 0)]应该给出[('a', 0), ('b', -1), ('c', 0)]和[('a', -1), ('b', 0), ('c', 0)]? -
是的,这个只有两个'-1'值。所以它只给出了两个不同的元组。
-
您想要一个平面列表中的所有结果吗?或者你想要第一个列表的 3 个结果在他们自己的列表中,第二个列表的两个结果在另一个列表中,等等?
-
平面列表,这只是一个示例,整个列表有 51 个元组。结果列表应该比这更多。
标签: python list replace tuples