是否可以创建一个返回如下几个元素的函数:
def foo():
return 'b', 'c', 'd'
print ['a', foo(), 'e'] # ['a', 'b', 'c', 'd', 'e']
我试过了,但它没有用
答案 0 :(得分:9)
您可以使用切片分配将序列插入到列表中:
Route::get('/',function()
{
//$queue = Queue::push('LogMessage',array('message'=>'Time: '.time()));
$queue = Queue::later(20,'LogMessage',array('message'=>'Time: '.time()));
return $queue;
});
class LogMessage{
public function fire($job,$data){
File::append(app_path().'/queue.txt',$data['message'].PHP_EOL);
$job->delete();
}
}
请注意,切片基本上是空的; bar = ['a', 'e']
bar[1:1] = foo()
print bar
是bar[1:1]
和'a'
之间的空列表。
要在Python 2中的一行执行此操作,需要连接:
'e'
如果您要升级到Python 3.5,则可以使用['a'] + list(foo()) + ['e']
解压缩:
*
请参阅 Python 3.5中的新功能中的Additional Unpacking Generalisations。
演示(使用Python 3):
print(['a', *foo(), 'e'])
答案 1 :(得分:-2)
您也可以使用这段简单的代码:
import itertools
def foo():
return 'b', 'c', 'd'
l = ['a', foo(), 'e']
x=list(itertools.chain(*l))
print x
输出:['a','b','c','d','e']