我不确定这是否可以在sed(或awk或任何bash工具)中执行我想要的操作:
我想创建一个脚本替换: )
字符串by <happy>
和) :
by <sad>
.这可以通过sed轻松完成:
echo "test : )" | sed 's/: )/<happy>/g'
echo "test ) :" | sed 's/) :/<sad>/g'
Run Code Online (Sandbox Code Playgroud)
不幸的是,有时我会有这样的字符串:
I'm happy : ) : ) : )
I'm sad ) : ) : ) :
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输出应该是:
I'm happy <happy> <happy> <happy>
I'm sad <sad> <sad> <sad>
Run Code Online (Sandbox Code Playgroud)
但通过结合上面的两个命令:
echo "I'm happy : ) : ) : )" | sed 's/: )/<happy>/g' | sed 's/) :/<sad>/g'
echo "I'm sad ) : ) …
Run Code Online (Sandbox Code Playgroud) 我想在python中做这样的事情:
def f():
b = ['c', 8]
return 1, 2, b*, 3
Run Code Online (Sandbox Code Playgroud)
我想要f
归还元组的地方(1, 2, 'c', 8, 3)
.我找到了一种方法来使用itertools
后面的tuple
,但这不是很好,我想知道是否有一种优雅的方式来做到这一点.
我在 Python 3.6 上遇到了一个非常奇怪的问题。在我的代码中间,我调用import pdb; pdb.set_trace()
调试一些代码。
然后我无法正确调试,例如:
(Pdb) abc = 3
(Pdb) [abc for _ in range(2)]
*** NameError: name 'abc' is not defined
(Pdb) [abc, abc]
[3, 3]
Run Code Online (Sandbox Code Playgroud)
似乎每当我使用列表推导式时,都会出现未定义变量的问题。但是,如果我在打开 Python 后立即调用调试器,我不会观察到这种行为,一切运行正常。
任何想法为什么我有这个问题?