【问题标题】:How to remove additional commas in a list in python如何在python列表中删除额外的逗号
【发布时间】:2019-11-27 20:35:35
【问题描述】:

给定如下列表

ListA=['apples', ',', 'orange', ',', 'grapes']

如何删除“,”以获得如下输出

ListA=['apples' , 'orange', 'grapes']

【问题讨论】:

  • ListA=['apples', ',' 'orange', ',' 'grapes'] 不是有效列表。你是说ListA=['apples', ',', 'orange', ',', 'grapes']
  • 这不是一个格式正确的列表
  • @NikhilCSB 这是一个有效的列表
  • 一个更好的选择是看看这个列表是如何创建的,并正确创建它......而不是不断地与其他一些格式错误的部分斗争
  • @NikhilCSB 已更正,是一个错字

标签: python python-3.x list list-comprehension


【解决方案1】:
x = ['apples', ',', 'orange', ',', 'grapes']

x = list(filter(lambda v: v != ',', x))

print(x)

另一种选择:

x = [v for v in x if v != ',']

结果:

['apples', 'orange', 'grapes']

【讨论】:

    【解决方案2】:

    你应该可以使用remove解决它:

    ListA.remove(',') 
    

    输出:

    ['apples', 'orange', ',', 'grapes']
    

    或者对多个“删除”使用列表推导:

    List_filtered = [x for x in ListA if x != ',']
    

    输出:

    ['apples', 'orange', 'grapes']
    

    【讨论】:

    • 除了实际的列表项是',' 'orange',它变成',orange'
    • 我认为 OP 没有正确地将 , 放在 ',' 之后。否则,它根本不是一种有效的格式。
    • 那不是真的......' a' 'asd' 在 python 中变成了' aasd'......虽然你假设他在他的名单上说错了是合理的
    • 你是对的,我仍然保持我的假设,但如果 OPs 格式实际上是真的,我会努力提供答案。感谢您指出 Joran。
    • 另一个我认为 str.remove只会删除第一次出现:P
    【解决方案3】:

    使用string.strip

    l=['apples', ',' 'orange', ',' 'grapes']
    res = [i.strip(',') for i in l]
    print(res)
    

    输出

    ['apples', 'orange', 'grapes']
    

    【讨论】:

      【解决方案4】:
      ListB = [ListA[i] for i in range(0, len(ListA),2)]
      

      或者

      print([ListA[i] for i in range(0, len(ListA),2)])
      

      【讨论】:

        【解决方案5】:

        strip(',') 操作的结果:

        ['apples', '', 'orange', '', 'grapes']
        

        不是['apples', 'orange', 'grapes'] !!!

        【讨论】:

        • 此结果基于用户输入,请查看他的编辑历史记录,另外我建议您将所有答案放在一个答案部分而不是多个答案部分
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-04
        • 2016-04-29
        • 2017-09-13
        • 1970-01-01
        相关资源
        最近更新 更多