用户输入,用于删除列表中的多个元素

时间:2014-08-31 16:21:39

标签: list loops python-2.7

我已阅读并重新阅读列表理解和循环,我猜这些不是我认为的。

我试图通过将垃圾变成列表,排序,删除用户定义的垃圾来查找一堆垃圾中的信息。用户输入一个字符,应删除所有匹配的字符。重复。

然而,它只删除了一个匹配的字符,而不是所有字符。我认为问题在于我调用函数重启的方式,但是我觉得函数(和类调用这个问题)并不像我想的那样工作

这是我在几小时后得到的最接近的事情:(我在这方面非常棒,所以请放轻松。谢谢。

junk = """
(+*]_}%+(%[{)]({#[+$&&[^@{&#!@%)!+&}$@+@[+&_*!$(+#*%!+$@{{^**{)(]*$(}+
!$%}$$}+@^$$%{}{#!(%[]$!*}+(]!%{(^{&^{$[$)]&&^+{+%!#[([%^!{]]#^@!{#(&]@_$*_&!%(!
+_+}%@#{_}^#*)%*(*}*![}[%_[[^@$&%)([*{_${)$^^_!+}{)!)@_[*$_}*}$#[+}{]*+!^])}&{+#
+!@!^*@}!}&{]*#^@}_[)}#@%!_*#!$}!)[(${+^&!{[&&&*[{}+*+(#+_[}{$$)#([*!)%@^%_]#%$$
(++^+&)}*_&%@#[^^+^&@_%]+$%$#$*)@!(]*+@]}%$$}$(#$&^(%[*([&]*^&}(!#{&_}^(*{(+$#}}
(&_+][&_@)$&$&^[_$(++$^}]&^^*(+*!&#_$]*+@!]+{%^_*+!&}@$!#^{+_#([+@(((*+)[()__}(^
@)](+[$*_(]*$[[&@^(_*#(*&!^{+]_%)_)^[}@]#]%#@+^+[%{_*{!)}#$@#)_$!_(!*+#}%%}+$&$[
%&]!{{%*_!*}&)}$**_{*!#%[[#]!](^^$![#[[*}%(_#^^!%))!_^@)@**@}}(%%{#*%@(((]^%^![&
}!)$]&($)@](+(#{$)_%^%_^^#][{*[)%}+[##(##^{$}^]#&(&*{)%)&][&{]&#]}[[^^&[!#}${@_(
#@}&$[[%]_&$+)$!%{(}$^$}*
"""

junklist = list(junk)


def find():
    junklist.sort()
    print junklist
    x = str(raw_input("what do you want to remove from the list?> "))
    return x

def deleteChars(x):
    while len(junklist) > 0:
        if x in junklist:
            junklist.remove(x)
            find()
        else:
            print "not in junklist"
            find()  

x =find()

2 个答案:

答案 0 :(得分:0)

将if更改为for语句。 对于垃圾清单中的y:   然后检查是否x == y。如果是这样,请删除它。

答案 1 :(得分:0)

我修改了程序以删除输入的所有字符。现在只需修改它以使其递归到您的愿望。如果您需要更多帮助,请告诉我。

    junk = """
(+*]_}%+(%[{)]({#[+$&&[^@{&#!@%)!+&}$@+@[+&_*!$(+#*%!+$@{{^**{)(]*$(}+
!$%}$$}+@^$$%{}{#!(%[]$!*}+(]!%{(^{&^{$[$)]&&^+{+%!#[([%^!{]]#^@!{#(&]@_$*_&!%(!
+_+}%@#{_}^#*)%*(*}*![}[%_[[^@$&%)([*{_${)$^^_!+}{)!)@_[*$_}*}$#[+}{]*+!^])}&{+#
+!@!^*@}!}&{]*#^@}_[)}#@%!_*#!$}!)[(${+^&!{[&&&*[{}+*+(#+_[}{$$)#([*!)%@^%_]#%$$
(++^+&)}*_&%@#[^^+^&@_%]+$%$#$*)@!(]*+@]}%$$}$(#$&^(%[*([&]*^&}(!#{&_}^(*{(+$#}}
(&_+][&_@)$&$&^[_$(++$^}]&^^*(+*!&#_$]*+@!]+{%^_*+!&}@$!#^{+_#([+@(((*+)[()__}(^
@)](+[$*_(]*$[[&@^(_*#(*&!^{+]_%)_)^[}@]#]%#@+^+[%{_*{!)}#$@#)_$!_(!*+#}%%}+$&$[
%&]!{{%*_!*}&)}$**_{*!#%[[#]!](^^$![#[[*}%(_#^^!%))!_^@)@**@}}(%%{#*%@(((]^%^![&
}!)$]&($)@](+(#{$)_%^%_^^#][{*[)%}+[##(##^{$}^]#&(&*{)%)&][&{]&#]}[[^^&[!#}${@_(
#@}&$[[%]_&$+)$!%{(}$^$}*
"""

junklist = list(junk)


def find():
    junklist.sort()
    print junklist
    x = str(raw_input("what do you want to remove from the list?> "))
    deleteChars(x)
    return x



def deleteChars(x):
    if x in junklist:
      a = [y for y in junklist if y != x]
      print a
    else:
      print 'not in junklist'


x=find()
相关问题