Python的Perl哈希的对应物是dict
(字典)对象.
如果d
是Python dict
,那么表达式
d.get(key, default)
Run Code Online (Sandbox Code Playgroud)
...评估d[key]
是否存在,default
否则.
除了三元表达之外,Perl是否对同一个想法有任何支持
exists $h{$key} ? $h{$key} : $default
Run Code Online (Sandbox Code Playgroud)
?
主题行中的Python习语
set('pdf ppt tif tiff jpg jpeg'.split())
Run Code Online (Sandbox Code Playgroud)
说明了创建一组字符串的相当紧凑的方法.1 我正在寻找一种类似的紧凑型成语来在JavaScript中创建一个集合.(注意:我对仅创建字符串列表不感兴趣.)
我理解JS中设置的标准方法是使用对象(键是设置元素,值是无关紧要的),但我还没有找到一种比较简洁的方法来在JS中创建这样的集合.
FWIW,我正在寻找的习语是用于书签(因此强调简洁).
谢谢!
1 对于那些不熟悉Python的人,内部表达式只是计算通过在空白处拆分调用字符串对象而获得的字符串列表; 这个列表是set
构造函数的参数.
编辑:强调我正在寻找一个集合(即对象),而不是字符串列表.
让我马上说,我正在寻找的绝对不是已经定义的DataFrameGroupBy.keys
属性。这个属性与我所追求的有所不同。
这篇文章标题的基本原理是,当迭代一个pandas
DataFrameGroupBy
对象时,在每次迭代时,迭代器都会生成一个对,这与迭代时生成的键值对非常相似dict.items()
。我想要的是这些伪键值对中的“键”,可以这么说;因此,我正在寻找(同样不是)的 -DataFrameGroupBy
等价物。dict.keys
DataFrameGroupBy.keys
对于dict
's, 一个人可以用像这样折磨和复杂的东西来获得钥匙
keys = [k for k, _ in d.items()]
Run Code Online (Sandbox Code Playgroud)
...但是,当然,这是不必要的,因为dict
已经通过其keys
方法公开了这些信息。因此keys = d.keys()
是所有的需要。
同样,我可以通过做一些折磨和复杂的事情来获得我想要的键
keys = [k for k, _ in g] # for some DataFrameGroupBy object g
Run Code Online (Sandbox Code Playgroud)
...但我希望这DataFrameGroupBy
让这些杂技变得不必要,就像那样dict
。
如果我运行脚本
import sys
if sys.gettrace():
print 'OK'
else:
assert False, 'good grief'
Run Code Online (Sandbox Code Playgroud)
...像这样
% python -mpdb bugdemo.py
Run Code Online (Sandbox Code Playgroud)
...(Python v.2.7.8)我首先看到这样的提示:
-> import sys
(Pdb)
Run Code Online (Sandbox Code Playgroud)
如果在这一点上,我反复进入s
脚本,我看到这样的事情:
> <path-to-script>/bugdemo.py(2)<module>()
-> if sys.gettrace():
(Pdb) s
> <path-to-script>/bugdemo.py(3)<module>()
-> print "OK"
(Pdb) s
OK
--Return--
> <path-to-script>/bugdemo.py(3)<module>()->None
-> print "OK"
(Pdb)
Run Code Online (Sandbox Code Playgroud)
但是,如果不是单步执行代码,而是在第一个调试器提示符处输入c
(简称cont
,即继续),代码的执行遵循不同的路径:
% python -mpdb bugdemo.py
> <path-to-script>/bugdemo.py(1)<module>()
-> import sys
(Pdb) c
Traceback (most recent call last):
File "/Users/yt/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pdb.py", line 1314, in main
pdb._runscript(mainpyfile) …
Run Code Online (Sandbox Code Playgroud) 学习OCaml正在迅速将我带到完全身体疲惫的程度......
在这个页面中
https://ocaml.org/learn/tutorials/modules.html
它说
在ocaml toplevel中,以下技巧允许可视化现有模块的内容,例如List:
# module M = List;;
module M :
sig
val length : 'a list -> int
val hd : 'a list -> 'a
val tl : 'a list -> 'a list
val nth : 'a list -> int -> 'a
val rev : 'a list -> 'a list
...
Run Code Online (Sandbox Code Playgroud)
当我在顶层输入完全相同的字符时,我得到的唯一输出是
module M = List
Run Code Online (Sandbox Code Playgroud)
即,我刚刚输入的内容(减去;;
)的有用回声,这至少让我放心,解释器不会在某个无限循环中丢失.
我需要做些什么才能获得广告宣传的行为?
这是一个愚蠢的事情data.frame
:
df <- read.table(textConnection(
"pole medal bag x y
north gold paper 0.852 0.423
north gold plastic 0.277 0.055
north silver paper 0.257 0.211
north silver plastic 0.457 0.614
north bronze paper 0.825 0.299
north bronze plastic 0.672 0.126
south gold paper 0.482 0.764
south gold plastic 0.603 0.869
south silver paper 0.327 0.451
south silver plastic 0.147 0.672
south bronze paper 0.140 0.466
south bronze plastic 0.833 0.325
"), header = TRUE)
Run Code Online (Sandbox Code Playgroud)
我知道如何以一种使用颜色和形状来表示两个因子属性的方式绘制这些数据的散点图。例如:
library(ggplot2)
ggplot(data = df, …
Run Code Online (Sandbox Code Playgroud) bookmarklet ×1
debugging ×1
dictionary ×1
ggplot2 ×1
hashmap ×1
javascript ×1
ocaml ×1
pandas ×1
perl ×1
python ×1
r ×1
set ×1