从Python中的列表中删除第5和第7个元素

时间:2015-02-09 11:50:47

标签: python list

我是python的新手。

问题是写一个函数,它取一个10项的列表并删除第5和第7个元素。该函数应该将剩余的列表转换为元组。

我试过通过dint得到输出:

x = int(raw_input("Please Enter The Number: "))

items = [raw_input('Enter The List of Items: ' ) for i in range(x)]

del items[5:7]

print items

请帮我解决这个问题。

5 个答案:

答案 0 :(得分:1)

您可以使用列表理解:

print([items[i] for i in range(len(items)) if i not in (4,6)])

python.org详细记录了列表理解。 "列表推导由括号组成,括号中包含一个表达式,后跟一个for子句,然后是零个或多个for或if子句。"

结果将是一个新列表,因此如果内存很重要,那么只需按正确的顺序删除项目;即以相反的顺序:

del items[6]
del items[4]

最后在你的特殊情况下你可以做到:

del items[4:7:2]

切片功能在python.org上有详细记录。

答案 1 :(得分:1)

x = int(raw_input("Please Enter The Number: "))

items = [raw_input('Enter The List of Items: ' ) for i in range(x)]

del items[6]
del items[4]


print items

答案 2 :(得分:1)

使用

从列表中删除项目
del items[x] # x - list index, starting with 0

虽然

del items[x:y]

将删除列表片段,而不是您要查找的内容。所以,只需要调用del两次,需要索引。 要从列表创建元组,只需使用

new_var = tuple(items)

答案 3 :(得分:1)

你应该返回第5和第7个删除序列的元组:

def fifth_and_seventh_removed(lst):
    lst = list(lst)
    del lst[6]
    del lst[4]  # order matters!
    return tuple(lst)

如果您del lst[4]后跟del lst[6],则会清除第五和第八个元素(为什么部分留给读者练习)。


或者对于功能方法,使用enumerate,使用生成器表达式:

def tuple_with_elements_removed(l, to_remove=(5, 7)): 
    """Return a copy of a iterable with certain elements removed
       (whose ordinals are in the to_remove); by default 
       5th and 7th elements are removed:"""

    to_remove = set(to_remove)
    return tuple(e for i, e in enumerate(l, 1) if i not in to_remove)

现在,

>>> print(remove_elements(range(1, 10))
(1, 2, 3, 4, 6, 8, 9) 

答案 4 :(得分:0)

  1. 从列表中删除最高索引。
  2. 使用tuple()将列表转换为元组。
  3. e.g。

    代码:

    x = int(raw_input("Please Enter The Number: "))
    items = [raw_input('Enter The List of Items: ' ) for i in range(x)]
    print "User Input:-", items
    del items[6]
    print "After deleting 7th element:-", items
    del items[4]
    print "After deleting 5th element:-", items
    items = tuple(items)
    print "Tuple:-", items
    

    输出:

    :~/study$ python test.py 
    Please Enter The Number: 10
    Enter The List of Items: 1
    Enter The List of Items: 2
    Enter The List of Items: 3
    Enter The List of Items: 4
    Enter The List of Items: 5
    Enter The List of Items: 6
    Enter The List of Items: 7
    Enter The List of Items: 8
    Enter The List of Items: 9
    Enter The List of Items: 10
    User Input:- ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
    After deleting 7th element:- ['1', '2', '3', '4', '5', '6', '8', '9', '10']
    After deleting 5th element:- ['1', '2', '3', '4', '6', '8', '9', '10']
    Tuple:- ('1', '2', '3', '4', '6', '8', '9', '10')