在Python中,如何传递仅包含一个字符串的列表?
例如:
def fn(mylist): return len(mylist)
print fn(('abc', 'def')) # prints 2
print fn(('abc')) # prints 3
我希望它为列表1
中的一个字符串打印('abc')
,而是为字符串的3个字符打印3
。
答案 0 :(得分:7)
这是一个元组,而不是列表。要制作一个元组,请执行以下操作:
print fn(('abc',))
要制作长度为一的列表,请执行以下操作:
print fn(['abc'])
在您的方案中,我认为列表更合适。当您拥有相同类型的相同元素时使用列表,当您拥有“记录”时使用元组,或者使用可能不同类型的某些元素并且您不需要添加或删除任何条目。 (列表通常包含元组。)
答案 1 :(得分:5)
fn(['abc'])
传递一个列表
fn(('abc'))
在括号中传递一个被忽略的字符串。
正如其他海报所指出的那样
fn(('abc', ))
传递一个元组。
答案 2 :(得分:3)
它们实际上被称为元组,你可以像这样创建一个长度为1的元组:
print fn(('abc',))
答案 3 :(得分:1)
当你使用('abc', 'def')
时,这意味着你传递了一个元组。
具有单个元素的元组可以声明为('abc',)
。
* 记下尾随逗号。
传递值('xyz') or 'xyz'
是相同的。
所以python函数len('string')
返回字符数。
另外,len(iteratable)
给出了iteratable中元素的数量。
因此,您应该使用fn(['abc'])或fn(('abc',))来获得所需的答案。