【问题标题】:Using a function to convert a String into a Tuple使用函数将字符串转换为元组
【发布时间】:2014-11-27 01:43:57
【问题描述】:

基本上需要一个简单的函数来将 String 转换为 Tuple。 到目前为止,我已经尝试过各种方法:

def studentinfo(info) :
    infotu = tuple(info)
    return(infotu)

studentinfo(aaa)

但它只是出现错误。有人请引导我朝着正确的方向前进。

【问题讨论】:

  • 我们不知道您的输入是什么样的,也不知道您希望您的输出是什么样的。

标签: string function python-3.x tuples


【解决方案1】:

您为infotu 分配了一个值,但尝试返回inftu

除了简单的错字之外,这应该可以按预期工作(假设您之前定义了aaa):

def studentinfo(info):
    infotu = tuple(info)
    return infotu

aaa = "Hello world"
studentinfo(aaa)

返回

('H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')

如果您打算将字符串拆分为某些字符,请改用内置函数split

def studentinfo(info):
    infotu = info.split(' ')
    return infotu

aaa = "Hello world"
studentinfo(aaa)

返回

['Hello', 'world']

【讨论】:

  • 啊,感谢您指出这一点。很累。我更改了它,但它说“未定义名称'aaa'”。我的目标是希望将 aaa 更改为元组。
  • 如果要将"aaa"作为字符串传递,则需要引用。
  • 好的,对代码进行了更改,但是它打印出“Hello World”而不是 ('H', 'e', 'l', 'l', 'o', ' ', 'w ', 'o', 'r', 'l', 'd')
  • 这很奇怪——它为我返回了一个元组,包含 Python 2 和 3。
  • 真的很奇怪。仍然返回 'Hello World' 作为字符串而不是 ['Hello', 'world'] 元组。
【解决方案2】:

您不需要为此使用函数。

即使在您的示例中,您也只是包装了一个语句。

myString="noob" 
print tuple(myString)

将打印:

('n','o','o','b')

如果你想要一个分隔符,使用split函数将字符串变成一个列表,并在列表上使用tuple()。

myString="stuff1,stuff2,stuff3"
myTup = tuple(myString.split(','))
print myTup

将打印:

('stuff1','stuff2','stuff3')

也就是说,你的问题如下:你正在返回元组,但你什么也没做。

您需要将最后一行更改为:

print studentinfo(aaa) 

您还需要确保 aaa 是一个实际具有字符串值的变量

【讨论】:

  • 我需要使用函数来完成这个任务。基本上我需要一个字符串参数并且函数需要创建/返回一个元组。因此,例如,如果用户输入“1234 2 PX KP”,我需要将该字符串转换为元组。
  • 你希望分隔符是什么?空白?还是您希望每个角色都成为自己的元素?
  • 空白。所以对于我之前给出的例子,元组的格式应该是('1234','2','PX','KP')。您给我的解决方案似乎可以完成这项工作,但我想为此使用一个函数。
  • 所以将它包装在函数中。就像我说的,一切都应该工作。除非我们有更多信息,否则没有人能真正帮助您。现在,它是两件事中的一件。你正在做一些非常愚蠢的事情,比如没有为 aaa 赋值,或者你的代码之外的东西导致了错误
  • 甚至没有添加最后的打印行。这么愚蠢的错误。感谢所有的帮助。
猜你喜欢
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
相关资源
最近更新 更多