直到最近,我一直在使用相同的键将多个值存储到不同的哈希中,如下所示:
%boss = (
"Allan" => "George",
"Bob" => "George",
"George" => "lisa" );
%status = (
"Allan" => "Contractor",
"Bob" => "Part-time",
"George" => "Full-time" );
Run Code Online (Sandbox Code Playgroud)
然后我可以参考$boss("Bob"),$status("Bob")但如果每个键都有很多属性,这就变得笨拙,我不得不担心保持哈希同步.
有没有更好的方法在哈希中存储多个值?我可以将值存储为
"Bob" => "George:Part-time"
Run Code Online (Sandbox Code Playgroud)
然后拆分拆分弦,但必须有一个更优雅的方式.
我想在单个键中存储多个值,如:
HashTable obj = new HashTable();
obj.Add("1", "test");
obj.Add("1", "Test1");
Run Code Online (Sandbox Code Playgroud)
现在这会引发错误.
我试图获得枚举的名称,给出其多个值之一:
class DType(Enum):
float32 = ["f", 8]
double64 = ["d", 9]
Run Code Online (Sandbox Code Playgroud)
当我试图得到一个值给它的名字时它起作用:
print DType["float32"].value[1] # prints 8
print DType["float32"].value[0] # prints f
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从给定值中获取名称时,只会出现错误:
print DataType(8).name
print DataType("f").name
Run Code Online (Sandbox Code Playgroud)
提高ValueError("%s不是有效的%s"%(值,cls.名称))
ValueError:8不是有效的DataType
ValueError:f不是有效的DataType
有没有办法做到这一点?或者我使用了错误的数据结构?
我已经阅读了文档(几个不同版本!)但我无法理解我的头脑multiple-value-bind.
这就是我(我想)知道的:
这肯定是文档读取的方式,它适合我正在阅读的代码,但不是非常紧随其后.当我尝试multiple-value-bind从头开始创建一个语句作为测试时,我遇到了麻烦.我最终得到这样的结果:
? (mulitple-value-bind (x y z) (values 11 22 33) (+ x y z)) ;; EDIT: contains typo
> Error: Unbound variable: Y
> While executing: CCL::CHEAP-EVAL-IN-ENVIRONMENT, in process Listener(7).
> Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts.
> If continued: Retry getting the value of Y.
> Type :? for other options.
1 >
Run Code Online (Sandbox Code Playgroud)
(我有点希望输出符合66.)(如果重要的话,我正在使用Clozure-CL,尽管我不认为它应该.)
另外,我正在查看一些示例代码(试图理解Project Euler Problem 24),其内容如下: …
有没有一种惯用的方法来记录返回多个值的函数的结果?这不会编译:
import "log"
func returnPair() (int,int) {
return 42, 24
}
func main() {
log.Printf("Returned %v", returnPair())
}
prog.go:7: multiple-value returnPair() in single-value context
Run Code Online (Sandbox Code Playgroud)
UPD 摘要(特别感谢@rvigacio):
这是 Go 语法的一个特点:
func eat(args ...interface{}) {}
func eatWithSpice(spice string, args ...interface{}) {}
func main() {
eat(returnPair()) // this works
eatWithSpice("pepper", returnPair()) // this does not
}
Run Code Online (Sandbox Code Playgroud)
作为一种特殊情况,如果函数或方法 g 的返回值数量相等并且可单独分配给另一个函数或方法 f 的参数,则调用 f(g(parameters_of_g)) 将在绑定返回值后调用 f g 的参数按顺序传递给 f 的参数。f 的调用除了 g 的调用之外不能包含任何参数,并且 g 必须至少有一个返回值。如果 f 有一个最终的 ... 参数,则为它分配常规参数分配后保留的 g 的返回值。(http://golang.org/ref/spec#Calls)
我想从字符串中得到三个数字
(parse-integer "12 3 6" :start 0 :junk-allowed t)
12 ;
2
Run Code Online (Sandbox Code Playgroud)
现在这2也会返回,这是可以解析的数字.所以我现在可以给
(parse-integer "12 3 6" :start 2 :junk-allowed t)
3 ;
4
Run Code Online (Sandbox Code Playgroud)
但我怎么保存的价值2和4它返回.如果我setq是到一个变量只12和3存储?
我有一个带复选框的表,用户可以检查并删除表中的那一行.我有一切工作,但如果用户检查两个框,它只检索表上的第一个.
<tr>
<td><input type="checkbox" name="id" value="${user.id}" /></td>
<td><c:out value="${user.name}" /></td>
<td><c:out value="${user.email}" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
这只是我的HTML的一个例子.这是我的servlet的一部分.
String id = request.getParameter("id");
Run Code Online (Sandbox Code Playgroud)
所以,再次,我可以选择第一个值,但我无法在同一个表上删除多个行.有没有我可以使用的功能或类似的东西?谢谢!
我有一个调用python脚本的bash脚本.起初我只是返回一个变量,这很好,但现在我被告知返回两个变量,我想知道是否有一个简洁的方法来返回多个变量.
archiveID=$(python glacier_upload.py $archive_file_name $CURRENTVAULT)
Run Code Online (Sandbox Code Playgroud)
我是用bash打电话的
print archive_id['ArchiveId']
archive_id['ArchiveId']
Run Code Online (Sandbox Code Playgroud)
这会将归档ID返回给bash脚本
通常我知道你可以在python中使用return语句来返回多个变量,但是它只是一个脚本,就像我发现返回变量一样.我可以使它成为一个被调用的函数,但即便如此,我将如何收到我将要传回的多个变量?
values和list或cons在Racket或Scheme 之间有什么区别?什么时候使用一个比另一个好?例如,如果quotient/remainder返回(cons _ _)而不是(values _ _)?
我正在尝试通过python用平均值和标准偏差数组绘制误差线,如下所示:
p11 = np.genfromtxt(filn1,delimiter="",usecols=0,dtype=None)
p12 = np.genfromtxt(filn3,delimiter="",usecols=0,dtype=None)
s11 = np.genfromtxt(filn2,delimiter="",usecols=0,dtype=None)
s12 = np.genfromtxt(filn4,delimiter="",usecols=0,dtype=None)
F1= np.genfromtxt(filn6,delimiter="",usecols=0,dtype=None)
F2= np.genfromtxt(filn7,delimiter="",usecols=0,dtype=None)
yerr1 =0.5*s11
yerr2 = 0.5*s12
plt.errorbar(F1,p11,'r',yerr=yerr1,lw=3,label='Summer')
plt.errorbar(F2,p12,'b',yerr=yerr2,lw=3,label='Winter')
Run Code Online (Sandbox Code Playgroud)
在此,p11和p12是平均值数组,而s11和s12是相应的标准差数组。这段代码运行良好,但是现在导致了:
TypeError: errorbar() got multiple values for keyword argument 'yerr'
Run Code Online (Sandbox Code Playgroud)
任何想法或提示将不胜感激。以撒