替换列表的最后一个元素

时间:2018-12-11 06:42:40

标签: python

我有一个这样的列表:

myList = [[1, 'A1', 100, '1001', '1', '1001', 'None'],
          [2, 'B1', 101, '3008', '2', '3008', 'bb'],
          [3, 'C1', 102, '607', '3', '607', 'None']]

我要替换每个子列表中的最后一个元素。

如果每个子列表中的最后一个元素为'None',则将'None'替换为''。

列表应如下所示:

myList = [[1, 'A1', 100, '1001', '1', '1001', ' '],
          [2, 'B1', 101, '3008', '2', '3008', 'bb'],
          [3, 'C1', 102, '607', '3', '607', ' ']]

3 个答案:

答案 0 :(得分:4)

使用负索引。

例如:

myList = [[1, 'A1', 100, '1001', '1', '1001', 'None'],
          [2, 'B1', 101, '3008', '2', '3008', 'bb'],
          [3, 'C1', 102, '607', '3', '607', 'None']]

myList = [i[:-1] + [""] if i[-1] == 'None' else i for i in myList ]
print(myList)

输出:

[[1, 'A1', 100, '1001', '1', '1001', ''],
 [2, 'B1', 101, '3008', '2', '3008', 'bb'],
 [3, 'C1', 102, '607', '3', '607', '']]

答案 1 :(得分:1)

使用否定索引:

for subList in myList:
    if subList[-1] == 'None':
        subList[-1] = ' '
myList
# [[1, 'A1', 100, '1001', '1', '1001', ' '],
#  [2, 'B1', 101, '3008', '2', '3008', 'bb'],
#  [3, 'C1', 102, '607', '3', '607', ' ']]

答案 2 :(得分:0)

myList = [[1, 'A1', 100, '1001', '1', '1001', 'None'],[2, 'B1', 101, '3008', '2', '3008', 'bb'],[3, 'C1', 102, '607', '3', '607', 'None']]

for i in range(len(myList)):
    print(i)
    print(type(myList[i][len(myList[i])-1]))
    if(myList[i][len(myList[i])-1]== 'None'):
        myList[i][len(myList[i])-1]=' '
print(myList)