Python开发:用type函数将序列元素分类为字符串、整数、浮点数二维列表
Python 实现按类型分类序列元素的函数
函数实现
def sort_str_int_float_list(sequence): str_list = [] int_list = [] float_list = [] for item in sequence: item_type = type(item) if item_type is str: str_list.append(item) elif item_type is int: int_list.append(item) elif item_type is float: float_list.append(item) return [str_list, int_list, float_list]
实现思路
- 初始化三个空列表,分别作为字符串、整数、浮点数的存储容器
- 遍历输入序列(支持
list和tuple类型,两者均为可迭代序列) - 用
type()函数严格判断元素类型,将元素追加到对应类型的列表中 - 返回由三个类型列表组成的二维列表,元素顺序与原序列完全一致
任务要求
- 实现函数
sort_str_int_float_list,需遍历输入序列,使用type函数按数据类型对元素进行分类 - 函数需返回二维列表(无论参数是list还是tuple),结构为:
[[字符串元素列表], [整数元素列表], [浮点数元素列表]],元素保持在原序列中的顺序
测试示例
sort_str_int_float_list(["foo",3,7.5])应返回[["foo"],[3],[7.5]]sort_str_int_float_list([1.0,"foo",3,"bar",9,7.5])应返回[["foo","bar"],[3,9],[1.0,7.5]]sort_str_int_float_list([1.0,"foo","3","bar",9,7.5])应返回[["foo","3","bar"],[9],[1.0,7.5]]
测试代码
将上述函数保存到sort_types.py文件中,运行以下代码验证功能:
import sort_types as testFile def test_my_function(): score = 0 TEST_DATA = ( (['foo',3,7.5],[['foo'],[3],[7.5]]), ([1.0,'foo',3,'bar',9,7.5], [['foo','bar'],[3,9],[1.0,7.5]]), ([1.0,'foo','3','bar',9,7.5],[['foo','3','bar'],[9],[1.0,7.5]]), (('bar',3,7.5),[['bar'],[3],[7.5]]), ((1.0,'foo','bar','7.5'), [['foo','bar','7.5'],[],[1.0]]) ) for test in TEST_DATA: testarg = test[0] expected = test[1] print("Test argument:", testarg) print("Expected result:", expected) result = testFile.sort_str_int_float_list(testarg) print("Result:",result) if result == expected: score += 5 print ("Passed.") else: print ("Failed.") print("Score:",score) test_my_function()
内容的提问来源于stack exchange,提问作者cryonanic
相关产品推荐
相关产品推荐

