python - 从列表中删除包含 (",") 的所有元素

标签 python list python-3.x

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/

相关文章:

python - 返回列表的链表函数

python - 从元组列表创建字典列表

python - 列表过滤和转换

python - 如何将二十一点游戏的两个重复 for 循环转换为单个函数

使用 API 获取 json 中的 xml 数据的 python 脚本

python - 多处理,pool.ready 做什么?

python - SqlAlchemy : I want to filter query on 2 foreign keys

python - 如何在 virtualenv 中安装 pygtk?

C# List<> 我应该在删除项目时降低容量吗?

python-3.x - 使用 Pandas 将字典条目扩展为行