Jupyter Notebook中如何将Python字符串列表传入%%bash单元格
在Jupyter Notebook中传递Python列表到%%bash单元格的正确方法
当直接传递Python列表{messages}时,bash会把列表的字符串表示(比如['hello', 'there'])当成单个参数,按空格拆分后得到错误的元素。要正确传递列表元素,需要把每个元素作为独立参数传入bash:
步骤1:定义Python列表
messages = ['hello', 'there']
步骤2:在bash单元格中展开列表元素
使用{messages[*]}展开列表的所有元素,作为bash的多个位置参数,然后用"$@"遍历所有参数:
%%bash -s {messages[*]} for i in "$@" do echo "$i" done
关键细节
{messages[*]}会将Python列表的元素展开为空格分隔的字符串,每个元素对应bash的一个位置参数。- 用双引号包裹
"$@"可以确保带空格的列表元素(比如['hello world', 'test'])被正确识别为单个元素,不会被bash按空格拆分。
如果不用展开语法,直接传{messages},bash会接收整个列表的字符串形式,拆分后得到[hello,、'there']这类错误的元素,这就是你之前只输出[hello,的原因。
内容的提问来源于stack exchange,提问作者Martin David Grunnill
相关产品推荐
相关产品推荐

