我有这个python脚本:
#!/usr/bin/env python
def getPermutation(s, prefix=''):
if len(s) == 0:
print prefix
for i in range(len(s)):
getPermutation(s[0:i]+s[i+1:len(s)],prefix+s[i] )
getPermutation('abcd','')
但是,我希望能够使用变量“ abcd”来调用此脚本,因此我可以插入字母的任意组合,而不是例如“ efgh”之类的“ abcd”。
通常,我可以在bash脚本的最后一行使用a$@
或$1
代替,abcd
例如:
#!/usr/bin/env python
def getPermutation(s, prefix=''):
if len(s) == 0:
print prefix
for i in range(len(s)):
getPermutation(s[0:i]+s[i+1:len(s)],prefix+s[i] )
getPermutation("$1",'')
但是当我使用类似以下命令运行脚本时./scriptname.py efgh
:
$1
1$
而不是“ efgh”的排列。
蟒等效shell的位置参数阵列$1
,$2
等等是sys.argv
所以:
#!/usr/bin/env python
import sys
def getPermutation(s, prefix=''):
if len(s) == 0:
print prefix
for i in range(len(s)):
getPermutation(s[0:i]+s[i+1:len(s)],prefix+s[i] )
getPermutation(sys.argv[1],'')
然后
$ ./foo.py abcd
abcd
abdc
acbd
acdb
adbc
adcb
bacd
badc
bcad
bcda
bdac
bdca
cabd
cadb
cbad
cbda
cdab
cdba
dabc
dacb
dbac
dbca
dcab
dcba
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句