Python 多义数 def tuplify(编号): x=str(编号) 如果len(x)
你可以把它转换成一个像这样的数字元组Python 多义数 def tuplify(编号): x=str(编号) 如果len(x),python,Python,你可以把它转换成一个像这样的数字元组 def tuplify(number): x = str(number) if len(x) <= 0: return 0 lst = [] for i in range(0,10): if i == x[len(x)-1]: lst.append(i) return tuple(lst) 但请注意,数字中的前导零将不会保留 除了比较字符串和数字之
def tuplify(number):
x = str(number)
if len(x) <= 0:
return 0
lst = []
for i in range(0,10):
if i == x[len(x)-1]:
lst.append(i)
return tuple(lst)
但请注意,数字中的前导零将不会保留
除了比较字符串和数字之外
print tuple(map(int, str(102486)))
# (1, 0, 2, 4, 8, 6)
您总是将i
与最后一个元素进行比较
另外,您希望返回一个元组,但如果字符串为空,则返回零
if i == x[len(x)-1]:
你可以把它转换成这样的一组数字
def tuplify(number):
x = str(number)
if len(x) <= 0:
return 0
lst = []
for i in range(0,10):
if i == x[len(x)-1]:
lst.append(i)
return tuple(lst)
但请注意,数字中的前导零将不会保留
除了比较字符串和数字之外
print tuple(map(int, str(102486)))
# (1, 0, 2, 4, 8, 6)
您总是将i
与最后一个元素进行比较
另外,您希望返回一个元组,但如果字符串为空,则返回零
if i == x[len(x)-1]:
您的代码中有几个问题,其中之一是:
if len(x) == 0:
return ()
因为i
是一个整数,而x
是一个字符串,所以这永远不会是真的<代码>1不等于“1”
You,rreturntuple(lst)
也缩进,因此它位于for循环内,但不应该在for循环内
但是for循环也很奇怪——你在数字0到9之间循环,总是与x
的最后一个字符进行比较,为什么?它想做什么
有几种简单的方法可以做到这一点,但我认为它们对您没有帮助。您的代码中有几个问题,其中一个是:
if len(x) == 0:
return ()
因为i
是一个整数,而x
是一个字符串,所以这永远不会是真的<代码>1不等于“1”
You,rreturntuple(lst)
也缩进,因此它位于for循环内,但不应该在for循环内
但是for循环也很奇怪——你在数字0到9之间循环,总是与x
的最后一个字符进行比较,为什么?它想做什么
有几种简单的方法可以做到这一点,但我认为这些方法对您没有帮助。编辑:
if i == x[len(x)-1]:
>>>p=123434455
>>>元组(int(i)表示str(p)中的i)
(1, 2, 3, 4, 3, 4, 4, 5, 5)
>>>
编辑:
if i == x[len(x)-1]:
>>>p=123434455
>>>元组(int(i)表示str(p)中的i)
(1, 2, 3, 4, 3, 4, 4, 5, 5)
>>>
我会看看:
您可以将数字转换为字符串,将其拆分,然后将每个字符转换回整数。您的代码有一些问题 首先,您不需要检查长度,因为没有“空白”数字;因此,您需要检查的是是否发送了号码。另外,您返回的
0
不是元组
其次,您不需要列表,因为您可以直接单步遍历字符串
最后,当您需要整数的元组时,您的结果将是字符串的元组
结合这一点,您可以得到:
>>> p = 123434455
>>> tuple(int(i) for i in str(p))
(1, 2, 3, 4, 3, 4, 4, 5, 5)
>>>
您的代码有一些问题 首先,您不需要检查长度,因为没有“空白”数字;因此,您需要检查的是是否发送了号码。另外,您返回的
0
不是元组
其次,您不需要列表,因为您可以直接单步遍历字符串
最后,当您需要整数的元组时,您的结果将是字符串的元组
结合这一点,您可以得到:
>>> p = 123434455
>>> tuple(int(i) for i in str(p))
(1, 2, 3, 4, 3, 4, 4, 5, 5)
>>>
试试这个
def tuplify(number):
if not number:
return () # this is an empty tuple
x = str(number)
return tuple(map(int,x))
试试这个
def tuplify(number):
if not number:
return () # this is an empty tuple
x = str(number)
return tuple(map(int,x))
您可能应该在循环之外返回结果。另外,
tuple(str(number))
有什么问题吗?tuple(int(i)for i in str(1234))
@FrédéricHamidi显然应该是答案。太棒了。@FrédéricHamidi一个小问题是它将返回('1','2','3')
而不是(1,2,3)
@BurhanKhalid,这是绝对的,但是提问者当前的代码试图生成字符串元组,所以我使用它运行。您可能应该在循环之外返回结果。另外,tuple(str(number))
有什么问题吗?tuple(int(i)for i in str(1234))
@FrédéricHamidi显然应该是答案。太棒了。@FrédéricHamidi轻微的问题是它将返回('1','2','3')
而不是(1,2,3)
@BurhanKhalid,绝对是这样,但是提问者当前的代码试图生成一个字符串元组,所以我用它运行。对他的问题没有帮助,甚至是错误的答案。对他的问题没有帮助,实际上,()
是一个空元组,(,)
是一个语法错误。令人困惑的是,(1,)
是编写单元素元组的方法。实际上,()
是一个空元组,(,)
是一个语法错误。令人困惑的是,(1,)
是编写单元素元组的方法。