Python嵌套元组拆分:为何无法将整数与字符串存入对应元组?
你的Python代码无法正常工作的原因
你的需求是将嵌套元组中的元素拆分,把整数存入unique_num元组、字符串存入unique_words元组,期望输出:
unique_num = (45, 21, 10, 24, 2) unique_words = ('foot', 'basket', 'hand', 'foot', 'hand')
你编写的代码如下:
def unique_data_items(data): unique_num = () unique_words = () for items in data: for values in items: if values == int: unique_num= unique_num + values elif values == str : unique_words= unique_words + values return ((unique_words), (unique_num)) data = ((45, 'foot'), (21, 'basket'), (10, 'hand'), (24, 'foot'), (21, 'hand')) print(unique_data_items(data))
代码无法正常工作的核心问题有三个:
- 类型判断逻辑错误:你用
values == int来判断元素是否为整数,这是在比较values是否等于int这个类型对象,而不是判断values的类型是整数。正确的类型判断应该用isinstance(values, int),字符串同理用isinstance(values, str)。 - 元组拼接方式错误:元组只能和元组拼接,你直接把单个整数/字符串加到元组上会触发类型错误。应该把单个元素包装成元组再拼接,比如
unique_num = unique_num + (values,)。 - return语句位置错误:你的
return写在了外层for循环的内部,第一次循环处理完第一个子元组(45, 'foot')后就直接返回结果了,后面的子元组根本没机会被处理。必须把return移到外层循环的外面,确保所有元素都处理完再返回。
内容的提问来源于stack exchange,提问作者astra
相关产品推荐
相关产品推荐

