如何在Python列表中将所有的零替换为空?

3
我需要将newsplitted中的零替换为空。基本上,我需要删除它们。我如何在没有导入任何模块的情况下实现这一点?有人能帮忙吗?
input_string = "01-result.xls,2-result.xls,03-result.xls,05-result.xls" 
# Must be turned into ['result1','result2', 'result3', 'result5']

splitted = input_string.split(',')

newsplitted =  ["".join(x.split('.')[0].split('-')[::-1]) for x in splitted ]

这是我迄今为止尝试过的内容:
final = []
for Y in newsplitted :
      final =[Y.replace('0','')]

仅出于学习目的,如果我想在另一个for循环中进行末尾的替换部分,该怎么做?


有人能帮我用for循环来完成这个吗? - marjak
3个回答

2
一行代码的列表推导式
input_string = "01-result.xls,2-result.xls,03-result.xls,05-result.xls"

result = [''.join(i.split('-')[::-1]).replace('.xls', '').replace('0', '') for i in input_string.split(',')]

结果
['result1', 'result2', 'result3', 'result5']

这基本上与之相同。
result = []
for i in input_string.split(','):
    formatted_element = ''.join(i.split('-')[::-1]).replace('.xls', '').replace('0', '')
    result.append(formatted_element)

在你的情况下,你应该这样做:
[Y.replace('0', '') for Y in newsplitted]

或者
final = []
for Y in newsplitted :
      final.append(Y.replace('0',''))

我建议您多了解一下Python中的列表推导式。

http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/

你可以随时参考文档。

https://docs.python.org/3.5/tutorial/datastructures.html#list-comprehensions


仅仅为了学习,如果我想在另一个for循环中执行最后的替换部分,应该怎么做????@danidee - marjak
1
[element.replace('.xls', '').replace('0', '') for element in already_formatted_string] - danidee
非常感谢,但您仍在使用列表推导式,有没有不使用列表推导式或导入的方法?@danidee我知道PYTHONIC方式是最好的,但我仍然很好奇。 - marjak
1
当然,看看我的更新答案...关键是使用字符串的append方法而不是在循环中创建一个新列表,其返回值为str.replace,这只是在列表中处理每个元素并返回新列表的常见方法,这就是为什么发明了列表推导式...你可以在这里阅读PEP https://www.python.org/dev/peps/pep-0202/。 - danidee

1
使用内置的map方法:
newsplitted =  ['result01', 'result2', 'result03', 'result05']
result = map(lambda x: x.replace('0', ''), newsplitted)

当您想对可迭代对象中的每个项目执行相同操作时,使用 map() 是一个好的实践。


1
input_string = "01-result.xls,2-result.xls,03-result.xls,05-result.xls" 
result = [el[el.index('-')+1:]+el[el.index('-')-1] for el in input_string.replace(".xls","").split(',')]

结果如下:

['result1', 'result2', 'result3', 'result5']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接