Python:在列表中组合数字

问题描述 投票:0回答:1

我有一个清单,说

x = [0,1,2,3,"a","b","cd"]

我想保留最小的数字和所有字母,因此在示例中它将变为

x = [0,"a","b","cd"]

我该怎么做?理想情况下,代码将非常高效,因为我正在为数百万个列表执行此操作。

尝试:我尝试查找min(x),但是由于列表中有字符串,因此会导致错误

python python-3.x processing-efficiency
1个回答
0
投票

我认为以下代码最有效。它不需要额外的内存,并且复杂度为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])

0
投票

尝试一下:

output = [s for s in x if isinstance(s, str)]
output.append(min(x))

© www.soinside.com 2019 - 2024. All rights reserved.