【问题标题】:Slicing list elements in Python 2.7.8 [closed]在 Python 2.7.8 中切片列表元素 [关闭]
【发布时间】:2014-10-22 21:32:02
【问题描述】:

我想删除列表中包含此元素的列表中元素“//”之后的列表元素

my_list = ['a', '=', 'x+y', '//', 'moo']

if '//' in my_list:
        my_list = my_list[0:my_list.index('//')]
print my_list

想要的输出:

['a', '=', 'x+y']

为什么这不起作用?

【问题讨论】:

  • mylist.index 未定义,你想要my_list.index
  • 当然是my_list。在这里打错字,不在程序中。
  • 在第二种情况下你不想要正则表达式有什么具体原因吗?
  • 我必须在不导入're'和其他库的情况下解决问题。
  • 请保持您的帖子一次只有一个问题。

标签: python list slice


【解决方案1】:

答案:

for index,line in enumerate(input):
    if '//' in line:
        input[index] = line[0:line.index('//')]

【讨论】:

    【解决方案2】:

    它不起作用的唯一原因是因为您在下面显示的行中使用了“mylist”,但您没有定义我猜它应该是“my_list”,并且可以这样工作:

    my_list = my_list[0:mylist.index('//')]
    

    【讨论】:

    • 打错字了,我编辑了。
    【解决方案3】:

    对于从 i 到 j 的切片,您需要 [i:j+1]

    >>> def split(my_list):
    ...  if '//' in my_list:
    ...      return my_list[0:my_list.index('//')+1]
    ...  else:
    ...      return my_list
    ... 
    >>> split(my_list)
    ['a', '=', 'x+y', '//']
    

    【讨论】:

    • 这不会产生所需的输出,它包含//
    • 编辑怎么样?
    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 2018-11-21
    • 2020-08-08
    • 2014-03-07
    • 2014-12-04
    • 1970-01-01
    • 2020-08-31
    • 2016-02-23
    相关资源
    最近更新 更多