将更改限制为仅1个列表

时间:2018-11-02 06:56:10

标签: python

我有嵌套列表(即[[list1],[list2]],我只想更改第一个列表。
我的功能如下:

function_name(data, list_number, change)

应该只返回数据中提供的list_number的更改

所以我的总体问题是,如何将这一更改限制为仅给定的list_number?如果不清楚,请随时提出和澄清。

例如:
已经知道“更改”将替换哪个索引,在这种情况下,它将替换第一个列表的第二个索引(即2)

data = [[1,2,3],[4,5,6]]  
function_name(data, 1, 6) 
data = [[1,6,3],[4,5,6]] 

我什至不知道从哪里开始,因为索引是“未知的”(即,在调用函数时由用户给出)

2 个答案:

答案 0 :(得分:0)

列表项通过它们的索引进行引用,嵌套列表可以以相同的方式工作。

如果您的列表是:

list = [['nest1_1', 'nest1_2']['nest2_1', 'nest2_2']]

您可以通过以下方式对其进行更改:

list[0] = ['nesta_1', 'nesta_2']
list[1][0] = 'second_1'

这将使您的列表现在为:

[['nesta_1', 'nesta_2']['second_1', 'nest2_2']]

答案 1 :(得分:0)

尝试以下代码:

data = [[1,2,3],[4,5,6]]

def element_change(data, index_list, element_to_change, change):
    a =''.join([ str(i) for i in data[index_list]])
    data[index_list][a.find(str(element_to_change))] = change
    return data

print(element_change(data, 0, 2, 6))

输入:

[[1, 2, 3], [4, 5, 6]]

输出:

[[1, 6, 3], [4, 5, 6]]

它的作用仅仅是将列表广播到字符串合并,以便能够使用find()方法来找到索引< / strong>。