Python 追加到列表但仅存储最后一个值

Python 追加到列表但仅存储最后一个值,python,list,append,Python,List,Append,我的控制流有问题,但我无法解决。我正在尝试去除所有非数字字符。输出应该如下所示: fixed_times = ['0700', '1200', '2010', '1025', '1235', '1410'] 但我的程序只是在固定时间后加上'1410' 这是我的代码: event_times = ['07:00.', '12:00.', '20:10.', '10:25.', '12:35.', '14:10.'] count = 0 j = 0 while count < len(e

我的控制流有问题,但我无法解决。我正在尝试去除所有非数字字符。输出应该如下所示:

fixed_times = ['0700', '1200', '2010', '1025', '1235', '1410']
但我的程序只是在固定时间后加上'1410'

这是我的代码:

event_times = ['07:00.', '12:00.', '20:10.', '10:25.', '12:35.', '14:10.']

count = 0 
j = 0
while count < len(event_times):
    fixed_times = []
    new_time = ""

    time = event_times[j]
    i = 0
    while i < len(time):
        if time[i].isdigit():
            new_time += str(time[i])
    
        i += 1
    fixed_times.append(new_time)
    j += 1
    count += 1

print(fixed_times)
event_times=['07:00','12:00','20:10','10:25','12:35','14:10']
计数=0
j=0
计数
您不需要使用
简单的列表理解就足够了:

event_times = ["07:00.", "12:00.", "20:10.", "10:25.", "12:35.", "14:10."]

out = ["".join(i for i in t if i.isdigit()) for t in event_times]
print(out)
印刷品:

['0700', '1200', '2010', '1025', '1235', '1410']
或:

重新导入
事件时间=[“07:00.”、“12:00.”、“20:10.”、“10:25.”、“12:35.”、“14:10.”
out=[“”.join(re.findall(r“\d”,t))表示事件\u次中的t]
打印(输出)

您的程序在每次迭代时都会重新创建列表
固定时间
,因此之前附加的值将丢失。您应该将变量声明移出第一个while循环,如下所示:

# ...
fixed_times = []
while count < len(event_times):
   # ...
#。。。
固定时间=[]
计数
对不起,我应该澄清这是学校作业。我不能通过使用列表理解来忽略这个问题,所以我不得不使用一种完全不可读的函数方法来取乐:
list(map(lambda event\u time::.join(filter(lambda char:char.isdigit(),event\u time)),event\u times))
解决了我的问题!非常感谢。