我需要能够将项目添加到列表中的列表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']
这样可行,但我感觉我的代码不适用于所有输入。可以?如果没有,那有什么不对?
答案 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']
答案 2 :(得分:0)
你没有提出问题,但这里有一些提示:
list.index
,list.pop
,a[index_of_doublespace] = popped_value_from_b
答案 3 :(得分:0)
由于这项功课,我只是给你一些提示:
您需要使用a
索引:
for i in range(len(a)):
if a[i] == ??? :
a[i] = ??
为什么要弹出-2
元素?看看pop
做了什么。
答案 4 :(得分:0)
我想你想这样做:
[x.split(' ')[0] or b.pop() for x in a]