如何从列表中删除特定数据类型

How to remove a specific data type from a list

一个列表可以由不同的数据类型组成。那么我如何分离数据类型,比如将整数存储在它们自己的列表中,将字符串存储在它们自己的列表中,甚至浮点数。像这样的列表 名称 = ["国王",'data',22,33,2.5,3.5] 我需要一些代码,可以说将名称列表中的字符串添加到新的空列表

你在找这个吗

names = ["king",'data',22,33,2.5,3.5]
l = [n for n in names if isinstance(n, str)]

输出:

['king', 'data']

您可以使用 isinstance() 方法检查给定的数据类型:

lst = ["king", "data", 22, 33, 2.5, 3.5]

f = []
s = []
i = []
o = []

# for each item in the list
for item in lst:
    # if an item is a string
    if isinstance(item, str):
        # append the item to s list
        s.append(item)
    elif isinstance(item, int):
        i.append(item)
    elif isinstance(item, float):
        f.append(item)
    else:
        o.append(item)
    
print(f, s, i)
name = ["king",'data',22,33,2.5,3.5]
str_list = []
num_lists = []

for elem in name:
    if type(elem) == str:
        str_list.append(elem)
    elif type(elem) == int:
        num_lists.append(elem)
        
        
print(name)
print(str_list)
print(num_lists)
from collections import defaultdict
input_list = ["king", 'data', 22, 33, 2.5, 3.5] 
d = defaultdict(list)
for v in input_list:
    d[type(v)].append(v)

例如,如果您只需要字符串:

strings = d[str]  # ['king', 'data']