備忘用
疲れた。。
ほとんどstackOverFlowからもらった。
values = dict((s, hoge) for s in foo)
こういうことができるPythonはズルいなと思いました。
// ### common function.
let zip = function(){
let args = [].slice.call( arguments );
let shortest = args.length == 0 ? [] : args.reduce( function( a, b ){
return a.length < b.length ? a : b
});
return shortest.map( function( _, i ){
return args.map( function( array ){ return array[i]} )
});
}
let dict = function( ary ){
let ret = {};
for ( let key in ary ){
ret[ ary[ key ][0] ] = ary[ key ][1];
}
return ret;
}
let dict_dual = function( ary, val ){
let ret = {};
for ( let key in ary ){
ret[ ary[ key ] ] = val;
}
return ret;
}
let all = function( iterable ){
if ( ! iterable ) return false;
for ( let idx = 0; idx < iterable.length; ++idx ){
if ( !iterable[ idx ] ) return false;
}
return true;
}
let set = function( ary ){
return ary.reduce( function( a, val ){
if ( a.indexOf( val ) === -1 ){
a.push( val );
}
return a;
}, [] );
}
let randomChoice = function( ary ){
return ary[ Math.floor( Math.random() * ary.length ) ];
}
let len = function( obj ){
if ( /\[object Array\]|\[object String\]/.test(
Object.prototype.toString.call( obj ) )
){
return obj.length;
}
throw "TypeError: arguments is illegal.";
}