因此,如果这"%05d" % 123返回#=> "00123",我也希望"%05d" % 0123返回#=> "00123",但它会返回#=> "00083".为什么会这样?
我面临以下问题;
我的脚本里面的某个地方我定义了一个函数
def lookup(type, value):
doctors = {'doctor1':"Smith", 'doctor2':"Rogers"}
supervisors = {'super1': "Steve", 'super2': "Annie"}
print type['value']
Run Code Online (Sandbox Code Playgroud)
我从我的脚本末尾调用这个函数,如下所示:
myDoc = 'super1'
lookup('supervisors', myDoc)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
TypeError: string indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我该如何解决?
谢谢大家!
python dictionary function variable-expansion string-substitution
我有一个看起来像这样的二维数组:
[true,false,false]
[false,true,false]
[false,false,true]
Run Code Online (Sandbox Code Playgroud)
我希望我能代替所有的真(布尔)与值"真"(串)和所有的假与"假"
假设我有一个包含以下字符的字符串
"\"------------080209060700030309080805\""
Run Code Online (Sandbox Code Playgroud)
现在我想使用r中的gsub函数删除“\和\”部分,只保留以下字符:
"------------080209060700030309080805\"
Run Code Online (Sandbox Code Playgroud)
谁能帮我弄清楚我应该如何正确地做到这一点?
使用R,如果它是一个数字,如何删除逗号,如果是一个字母,用空格替换逗号?:
Company | Sales |
-------------------------
go, go, llc |2,550.40 |
tires & more | 500 |
l-m tech |1,000.67 |
Run Code Online (Sandbox Code Playgroud)
样本数据:
data = matrix(c('go, go,llc', 'tires & more', 'l-m technology',
formatC(2550.40, format="f", big.mark=",", digits=2), 500,
formatC(1000.67, format="f", big.mark=",", digits=2)),
nrow=3,
ncol=2)
Run Code Online (Sandbox Code Playgroud)
预期产量:
Company | Sales |
-----------------------
go go llc |2550.40 |
tires & more | 500 |
l-m tech |1000.67 |
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
data <- sapply(data, function(x){
if (grepl("[[:punct:]]",x)){
if (grepl("[[:digit:]]",x)){
x <- gsub(",","",x)
}
else{
x <- gsub(","," …Run Code Online (Sandbox Code Playgroud) 我试图传递一个引用的globbing模式来使用变量在脚本中查找命令.没有eval就行不通.这是没有eval的方法吗?
首先,我使用followin命令:
find . -name '*a*'
Run Code Online (Sandbox Code Playgroud)
它工作正常并产生以下输出:
./AaA
./dir1/aaa.tst
./dir1/zabc1122333.tst
./dir2/dir3/zabc1122333.tst
./yyy/AaA
./zabc1122333.tst
Run Code Online (Sandbox Code Playgroud)
现在我想用一个变量来代替引用的glob模式' a '.
这不起作用:
A='*a*' ; find . -name $A
Run Code Online (Sandbox Code Playgroud)
它产生:
find: zabc1122333.tst: unknown primary or operator
Run Code Online (Sandbox Code Playgroud)
以下四个命令也不起作用.他们什么都没有:
A="'*a*'" ; find . -name $A
A=\'\*a\*\' ; find . -name $A
A=\'*a*\' ; find . -name $A
A='\*a\*' ; find . -name $A
Run Code Online (Sandbox Code Playgroud)
最后它适用于eval:
A=\'\*a\*\' ; eval find . -name $A
./AaA
./dir1/aaa.tst
./dir1/zabc1122333.tst
./dir2/dir3/zabc1122333.tst
./yyy/AaA
./zabc1122333.tst
Run Code Online (Sandbox Code Playgroud)
没有评估可以做到吗?