muutujad = list(input("Muutujad (sisesta formaadis A,B,C,...): "))
while "," in muutujad == True:
muutujad.remove(",")
print (muutujad)
我的大脑说这段代码应该删除列表中的所有逗号,最后 列表应该只包含 ["A","B","C"....] 但它仍然包含所有元素。当我尝试在线可视化代码时,它说 [“,” in muutujad ] 始终为 False,但是当我从控制台检查相同的命令时,它说它是 True。我知道这是一个简单的问题,但我想了解基础知识。
最佳答案
您可以使用列表理解代替 while 循环:
muutujad = [elem for elem in muutujad if elem != ',']
您的 if
测试本身也是错误的。在任何情况下,您永远都不需要测试if
的== True
,这就是if
所做的。但在您的情况下,您测试以下内容:
("," in muutujad) and (muutujad == True)
这总是是错误的。在Python中,像in
和==
这样的比较运算符是chained 。省略 == True
将使您的 while
循环工作得更好。
我不确定您是否理解在字符串上调用 list()
时会发生什么;它会把它分成单独的字符:
>>> list('Some,string')
['S', 'o', 'm', 'e', ',', 's', 't', 'r', 'i', 'n', 'g']
如果您想将输入拆分为由逗号分隔的元素,请使用 .split()
方法,并且您根本不必删除逗号:
>>> 'Some,string'.split(',')
['Some', 'string']
关于python - 从列表中删除包含 (",") 的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12871637/