我有一个清单,说
x = [0,1,2,3,"a","b","cd"]
我想保留最小的数字和所有字母,因此在示例中它将变为
x = [0,"a","b","cd"]
我该怎么做?理想情况下,代码将非常高效,因为我正在为数百万个列表执行此操作。
尝试:我尝试查找min(x),但是由于列表中有字符串,因此会导致错误
我认为以下代码最有效。它不需要额外的内存,并且复杂度为O(N)
x = [0, 1, 2, 3, "a", "b", "cd"]
minimum = 99999999
j = 0
for i in range(len(x)):
if type(x[i]) == str:
x[j] = x[i]
j+=1
else:
minimum = min(minimum, x[i])
print([minimum]+x[:j])
尝试一下:
output = [s for s in x if isinstance(s, str)]
output.append(min(x))