将项添加到python中另一个列表的列表中

时间:2012-03-09 20:16:17

标签: python list

我需要能够将项目添加到列表中的列表a中。一旦识别出作为双空格的' ',就要添加列表b中的项目。

因此,如果列表中的第一项不是双空格,那么循环继续检查列表中的下一项,如果它也不是双空格,它继续进行直到找到双空格然后它用列表b中的项替换第一个可用的双倍空格。这应该是循环的,这样如果我再次运行该函数,弹出列表b中的项目并将其添加到列表a中的下一个可用双空格。

a = ['a','c','e','j','h','  ','  ','  ','  ']
b = ['b','d','f','i','g']

x = 4
for item in a:
    if item == a[4]:
        break
if a[x] != '  ':
    a[x+1] = b.pop(-2)

else:
    a[x] = a[x+1]

print("list a: ",a)
print("List b: ",b)

输出:

list a:  ['a', 'c', 'e', 'j', 'h', 'i', '  ', '  ', '  ']
List b:  ['b', 'd', 'f', 'g']

这样可行,但我感觉我的代码不适用于所有输入。可以?如果没有,那有什么不对?

5 个答案:

答案 0 :(得分:2)

我认为这就是你要找的东西:

def move_item(a, b):
    a[a.index('  ')] = b.pop()

>>> a = ['a','c','e','j','h','  ','  ','  ','  ']
>>> b = ['b','d','f','i','g']
>>> move_item(a, b)
>>> print('list a: ', a, '\nlist b: ', b)
list a:  ['a', 'c', 'e', 'j', 'h', 'g', '  ', '  ', '  ']
list b:  ['b', 'd', 'f', 'i']
>>> move_item(a, b)
>>> print('list a: ', a, '\nlist b: ', b)
list a:  ['a', 'c', 'e', 'j', 'h', 'g', 'i', '  ', '  ']
list b:  ['b', 'd', 'f']

答案 1 :(得分:2)

此:

a = [b.pop() if item == '  ' else item for item in a]

得到你:

['a', 'c', 'e', 'j', 'h', 'g', 'i', 'f', 'd']

查看Python list comprehensions

答案 2 :(得分:0)

你没有提出问题,但这里有一些提示:

list.indexlist.popa[index_of_doublespace] = popped_value_from_b

答案 3 :(得分:0)

由于这项功课,我只是给你一些提示:

  1. 您需要使用a索引:

    for i in range(len(a)):
        if a[i] == ??? :
            a[i] = ??
    
  2. 为什么要弹出-2元素?看看pop做了什么。

答案 4 :(得分:0)

我想你想这样做:

[x.split(' ')[0] or b.pop() for x in a]