use*_*231 3 python string split list
我创建了一个需要列表才能正常工作的方法.但是,您可以发送一个列表或一个简单的字符串.我想将该字符串转换为包含整个字符串作为元素的列表.例如,如果我有:
"I am a string"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
["I am a string"]
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
"I am a string".split("!@#$%^&*")
Run Code Online (Sandbox Code Playgroud)
因为我永远不会有符号组合,所以它总会将它转换为列表而不删除任何字符.但是,这似乎不是一种很好的方法.还有另外一种方法吗?
>>> "abc"
'abc'
>>> ["abc"]
['abc']
>>> abc = "abc"
>>> abc
'abc'
>>> [abc]
['abc']
>>> "I am a string".split("!@#$%^&*") == ["I am a string"]
True
Run Code Online (Sandbox Code Playgroud)
将值放在方括号中会生成包含一个项的列表,就像多个值生成包含多个项的列表一样.唯一不遵循此模式的容器是元组,因为圆括号也用于分组.在这种情况下,只需在单个项目后添加逗号:
>>> abc
'abc'
>>> (abc)
'abc'
>>> (abc,)
('abc',)
Run Code Online (Sandbox Code Playgroud)
如果您希望函数在封面下以不同方式处理列表和字符串,请将您的函数编码为:
def f(maybe_list):
if not isinstance(maybe_list, list):
maybe_list = [maybe_list]
# carry on, you have a list.
Run Code Online (Sandbox Code Playgroud)