小编s.p*_*tra的帖子

如何修改列表中列表中的元素

我是Python的新手,试图学习基础知识.对列表有疑问.

有一个清单:

L = [[1,2,3],[4,5,6],[3,4,6]]
Run Code Online (Sandbox Code Playgroud)

输出应该是:

[[2,4,6],[8,10,12],[6,8,12]]
Run Code Online (Sandbox Code Playgroud)

适用于我的代码如下

for x in range(len(L)):
    for y in range(len(L[x])):
        L[x][y] = L[x][y] + L[x][y]
print L
Run Code Online (Sandbox Code Playgroud)

它给出了输出[[2,4,6],[8,10,12],[6,8,12]].

现在我希望使用不同的代码输出相同的输出:

for x in L:
    a = L.index(x)
    for y in L[a]:
        b = L[a].index(y)
        L[a][b] = L[a][b] + L[a][b]
print L
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,获得的输出是:

[[4,2,6],[8,10,12],[12,8,6]]
Run Code Online (Sandbox Code Playgroud)

我试着调试上面的输出.我"L[a][b] = L[a][b] + L[a][b]"在打印a和b 的行上面打印了一个打印声明.我很惊讶地看到a和b的值是:

0,0
0,0
0,2
1,0
1,1
1,2
2,0
2,1
2,0
Run Code Online (Sandbox Code Playgroud)

再次,如果我注释掉该行,"L[a][b] = L[a][b] + L[a][b]"那么a和b的值是预期的:

0,0
0,1
0,2
1,0
1,1
1,2 …
Run Code Online (Sandbox Code Playgroud)

python list

5
推荐指数
1
解决办法
66
查看次数

Perl中的多级继承

我有一个与Perl中的多级继承有关的问题.

这是我的代码

mod.pm

package first;

sub disp {
    print "INSIDE  FIRST\n";
}

package second;
@ISA = qw(first);

sub disp {
    print "INSIDE SECOND\n";
}

package third;
@ISA = qw(second);

sub new {
    $class = shift;
    $ref   = {};
    bless $ref, $class;
    return $ref;
}

sub show {
    $self = shift;
    print "INSIDE THIRD\n";
}

1;
Run Code Online (Sandbox Code Playgroud)

prog.pl

use mod;

$obj = third->new();
$obj->show();
$obj->disp();
Run Code Online (Sandbox Code Playgroud)

我有一个.pm文件,其中包含三个类.我想disp使用第三类对象访问第一个类中的方法.我不确定这是怎么回事.

我尝试使用两种方式访问​​:

  1. 使用类名=> first :: disp()
  2. 在第二个包中使用SUPER disp方法=> $ self-> SUPER :: disp();

但我不确定如何使用第三类对象直接访问它.

oop perl inheritance

3
推荐指数
1
解决办法
205
查看次数

数据压缩和重复数据删除之间的实际差异

重复数据删除和数据压缩之间的确切区别是什么.

据我所知,重复数据删除意味着当我们拥有完全相同的数据副本时,无论是相同的块(块级重复数据删除)还是相同的文件(文件级重复数据删除),那么在存储中只保留一个副本,并且对于该副本,引用计数的数量是每次不同用户使用块或文件时递增.

但压缩如何在内部工作.

请帮我解决这个问题.提前致谢.

compression performance storage duplicates netapp

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

如何用大写字母替换字符串中的小写字母,也找不到替换

这是我的问题:我有一个字符串.然后我想用相应的大写字母替换小写字母,并且还想知道它必须为字符串做的替换次数.

S = "ABCdefGHijKLmNop"

Output string = "ABCDEFGHIJKLMNOP"
Run Code Online (Sandbox Code Playgroud)

和替换的数量.(在这种情况下为六)

然后我尝试使用re.sub:

New = re.sub("[a-z]","[A-Z]",S)
Run Code Online (Sandbox Code Playgroud)

但输出看起来像:

ABC[A-Z][A-Z][A-Z]GH[A-Z][A-Z]KL[A-Z]N[A-Z][A-Z]
Run Code Online (Sandbox Code Playgroud)

我也尝试使用字符串的替换功能,但是也没有用.

python regex string

1
推荐指数
1
解决办法
70
查看次数