基本上,我要做的是在满足条件时删除列表中的值。你知道吗
条件基于值在列表中的位置,这是函数定义中remove\u position的意思。下面的代码是我目前所拥有的代码,我正在使用python3.6.0。本例中的列表来自一个外部python文件,该文件从另一个python导入函数,它是:
str_list5 = ['w', 'i', 'n', 'g']
new_list = list_function.remove_value(str_list5, 2)
print(new_list)
new_list = list_function.remove_value(str_list5, -1)
print(new_list)
new_list = list_function.remove_value(str_list5, 10)
print(new_list)
我要做的是在一个算术函数中使用上面的remove\u position值,它将删除与函数结果相对应的项。你知道吗
def remove_value(my_list, remove_position):
newlist = []
count = 0
for item in my_list:
if remove_position < count:
newlist.remove(item)
if remove_position > count:
newlist.remove(item)
return newlist
我想要的结果是:
remove_value Test
['w', 'i', 'g']
['i', 'n', 'g']
['w', 'i', 'n']
试试这个
首先:
list
对象是mutable,当您在函数内部更改它们时,原始对象也会更改,因此如果您在remove_value
中使用list.remove
方法,您的str_list5
也会丢失元素。你知道吗我建议你创建新的对象,而不是改变旧的对象。 我们可以写这个
或者使用list comprehension
或者使用
list
slices遵循@ChihebNexus建议那么选择哪一个呢?最后一个版本在我看来更优雅。你知道吗
测试
给了我们
你可以这样做:
输出:
相关问题 更多 >
编程相关推荐