小编Joh*_*ith的帖子

指向列表元素的python字典值

有没有办法在dict值中保留对列表元素的引用,并通过dict修改列表?

a = [1, 2]
b = [11, 22]

d = {k: v for k, v in zip(a, b)}
d[1] = 33
print b, d
Run Code Online (Sandbox Code Playgroud)

输出是第二次打印:

[11, 22] {1: 33, 2: 22}
Run Code Online (Sandbox Code Playgroud)

虽然我想:

[33, 22] {1: 33, 2: 22}
Run Code Online (Sandbox Code Playgroud)

我怀疑字典创建者和修改都不正确...

在C中,可以将指针保留在字典中并通过*运算符修改值.

有什么类似的python或任何其他pythonic方式来实现这一点?

python

6
推荐指数
0
解决办法
61
查看次数

从data.table的一列和相应的总和中进行组合

在:

   V1  V2
1:  A 0.6
2:  B 0.3
3:  C 0.1
Run Code Online (Sandbox Code Playgroud)

Out(V1是组合,V2是它们的总和):

   V1  V2
1: AA 1.2
2: AB 0.9
3: AC 0.7
4: BA 0.9
5: BB 0.6
6: BC 0.4
7: CA 0.7
8: CB 0.4
9: CC 0.2
Run Code Online (Sandbox Code Playgroud)

通过双循环实现这一点,这看起来很慢......任何更快,数据更快,加速的方法?

脚本:

dtIn <- data.table(LETTERS[1:3], c(0.6, 0.3, 0.1))
dtOut <- list()
for (i in 1:nrow(dtIn))
  for (j in 1:nrow(dtIn))
    dtOut[[paste0(i, j)]] <- data.table(paste0(c(dtIn[i, V1], dtIn[j, V1]), collapse = ""),
                                        dtIn[i, V2] + dtIn[j, V2])
dtOut <- rbindlist(dtOut)
Run Code Online (Sandbox Code Playgroud)

r data.table

2
推荐指数
2
解决办法
56
查看次数

标签 统计

data.table ×1

python ×1

r ×1