【发布时间】:2021-10-24 07:12:19
【问题描述】:
我遇到一个面试问题来实现以下功能:
def f(sequence_type, element):
pass
例如:
f(str, 'a') return 'a'
f(list, 'a') return ['a']
f(list, 'ab') return ['ab']
f(list, 1) return [1]
f(tuple, 1) return (1, )
f(set, 1) return {1}
f(str, 1) return '1'
f(str, [1]) return '[1]'
我想出了一个幼稚的方法:
def f(sequence_type, element):
return sequence_type(element)
此方法适用于str。但是,我会得到错误,因为tupe(1) 会引发TypeError: 'int' object is not iterable。
当然,我可以写一堆if else 来检查类型并使用特定的方式来生成一个元素序列,例如[x](x,) 等等。有没有干净通用的方法来做到这一点?
【问题讨论】:
标签: python python-3.x list set tuples