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