python列表元素零的移动_使用Python中的列表理解将所有零移动到数组的末尾

给定一个数字列表,请使用列表推导将所有零移动到末尾。例如,[1、3、0、4、0、5、6、0、7]的结果为[1、3、4、5、6、7、0、0、0]。

这是使用列表推导的单行代码。请参阅以下步骤以获取结果。初始化数字列表。

从列表中生成非零,并从列表中生成零。两者都添加。并将结果存储在列表中。

打印新列表。

示例# initializing a list

numbers = [1, 3, 0, 4, 0, 5, 6, 0, 7]

# moving all the zeroes to end

new_list = [num for num in numbers if num != 0] + [num for num in numbers if num == 0]

# printing the new list

print(new_list)

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

如果运行上面的代码,您将得到以下结果。

输出结果[1, 3, 4, 5, 6, 7, 0, 0, 0]

结论

如果您对本教程有任何疑问,请在评论部分中提及。

Python,如果你想要把数组(在Python称为列表的某些元素移动列表最后,你可以使用列表切片和列表拼接的方法来实现。这里有几种方法可以完成这个操作: 方法一:使用切片和拼接 ```python def move_elements_to_end(lst, elements): # 移除所有指定元素,并保持顺序 lst[:] = [x for x in lst if x not in elements] # 将指定元素添加列表末尾 lst.extend(elements) return lst # 示例 my_list = [1, 2, 3, 4, 2] elements_to_move = [2] print(move_elements_to_end(my_list, elements_to_move)) ``` 方法二:使用filter函数 ```python def move_elements_to_end(lst, elements): # 使用filter函数过滤掉指定元素,然后与指定元素拼接 filtered_list = list(filter(lambda x: x not in elements, lst)) return filtered_list + [x for x in lst if x in elements] # 示例 my_list = [1, 2, 3, 4, 2] elements_to_move = [2] print(move_elements_to_end(my_list, elements_to_move)) ``` 方法三:使用列表推导式和列表的pop方法(不推荐,因为pop方法会影响列表的顺序) ```python def move_elements_to_end(lst, elements): new_lst = [] for item in lst: if item in elements: new_lst.append(item) else: lst.pop(lst.index(item)) new_lst.append(item) return new_lst # 示例 my_list = [1, 2, 3, 4, 2] elements_to_move = [2] print(move_elements_to_end(my_list, elements_to_move)) ``` 在使用上述方法时,请确保不会对列表进行重复的迭代操作,因为这可能会导致性能问题,特别是当列表很大时。对于最后一个方法,使用`pop`和`index`可能会导致效率低下,因为每次调用`index`方法都会遍历列表,这在大数据集上是非常耗时的操作。通常不推荐使用这种方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值