Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用零替换python列表中的所有零?_Python - Fatal编程技术网

如何用零替换python列表中的所有零?

如何用零替换python列表中的所有零?,python,Python,我需要用零替换newsplited中的零。基本上,我需要移除它们。在没有导入的情况下如何执行此操作?有人能帮忙吗 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 = ["

我需要用零替换newsplited中的零。基本上,我需要移除它们。在没有导入的情况下如何执行此操作?有人能帮忙吗

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循环中完成最后的替换部分,人们会怎么做

带列表的一行

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]

我建议您阅读更多关于python中列表理解的内容

你可以随时查阅文档

使用内置方法:

使用map()是一种很好的做法,当您希望对每个用户都执行相同的操作时 您的iterable中的项目

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']

有人能帮我在一个for循环中也这样做吗?只是为了学习,如果我想在另一个for循环中完成最后的替换部分,人们会怎么做@DanideIt看起来像这样
[element.replace('.xls',').replace('0','')for element for element in readed_formatted_string]
非常感谢,但是您仍然在使用列表理解,有没有任何方法可以在没有列表理解或导入的情况下执行此操作@danidee我知道PYTHONIC方法是最好的,但我还是很好奇当然…看看我更新的答案…关键是使用字符串的
append
方法,而不是在循环中创建一个返回值为
str.replace
的新列表,处理列表中的每个元素并返回一个新的列表是很常见的事情,这就是为什么列表理解是在哪里发明的…你可以在这里阅读PEP
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']