0
list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]

假设我需要将第一个 'a' 替换为(0,1),那么结果应该是:

[[(0,1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]

我怎样才能做到这一点?

4

3 回答 3

4

只需解决内部列表:

list1[0][0] = (0, 1)

第一个索引操作[0]检索外部列表中的第一个元素,然后您对其应用另一个索引操作以获取包含列表的第一个元素。

>>> list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> list1[0][0] = (0, 1)
>>> list1
[[(0, 1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
于 2012-07-30T11:11:08.883 回答
2
>>> my_list = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> for sublist in my_list:
        if sublist[0] == 'a':
            sublist[0] = (0, 1)
            break


>>> my_list
[[(0, 1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
于 2012-07-30T11:13:21.860 回答
1

编辑:为了回答这个问题(只有第一个'a'),并满足不满意的缩进客户 - 这是一些好的代码:

for inner_list in list1:
    for idx, elem in enumerate(inner_list):
        if elem=='a':
            inner_list[idx] = (0,1)
            break
于 2012-07-30T11:14:11.670 回答