将值插入列表中的列表 - python

时间:2015-09-30 10:48:36

标签: python list

说我有以下内容:

wholeList = ['a', 'b', ['1', '2', '4'], 'c', 'd']

如何添加值' 3'进入wholeList中的数字列表,在值' 2'之后的点但在价值' 4'?

之前

4 个答案:

答案 0 :(得分:1)

索引到正确的子列表,然后使用list的{​​{1}}方法。

insert

答案 1 :(得分:1)

您可以在列表理解中使用numpy.searchsortedinsert函数:

def custom_insert(arr,val):
     return [list(np.insert(sub,np.searchsorted(sub,val),val)) if all(i.isdigit() for i in sub) else sub for sub in arr]

演示:

>>> custom_insert(wholeList,'3')
... ['a', 'b', ['1', '2', '3', '4'], 'c', 'd']

另一个例子:

>>> wholeList = ['a', 'b', ['1', '2', '4'], 'c',['5','6','7','8'] ,'d']
>>> custom_insert(wholeList,'3')
['a', 'b', ['1', '2', '3', '4'], 'c', ['3', '5', '6', '7', '8'], 'd'] 

在这里,您可以遍历列表,并检查每个元素是否所有项都是数字,然后使用numpy.searchsorted在该列表中找到val参数的索引并使用numpy.insert将该数组中的值插入已建立的索引。

答案 2 :(得分:0)

您可以使用'3'方法

在列表中附加append
wholeList[2].append('3')

此外,如果您希望保留订单,请使用insert()

wholeList[2].insert(2, '3')

答案 3 :(得分:0)

列表中的列表是否应该排序?如果是这样,那么也许这可以解决问题。虽然我想Kasramvd已经回答了你的问题。

def append_list(passed_list):
    rtn_list = []
    for item in passed_list:
        if type(item) is list:
            item.append(3)
            rtn_list.append(sorted(item))
        else:
            rtn_list.append(item)
    return rtn_list