小编Lit*_*wos的帖子

在类方法中声明新变量

我刚读过Python中的类和方法变量,我想知道这两个示例之间是否有区别:

class Example(object):
    def __init__(self, nr1, nr2):
        self.a = nr1
        self.b = nr2

    def Add(self):
        c = self.a + self.b
        return c

class Example2(object):
    def __init__(self, nr1, nr2):
        self.a = nr1
        self.b = nr2

    def Add(self):
        self.c = self.a + self.b
        return self.c
Run Code Online (Sandbox Code Playgroud)

基本上,如果我这样做:

print Example(3,4).Add()
print Example2(3,4).Add()
Run Code Online (Sandbox Code Playgroud)

我得到相同的结果:

7
7
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. self.c = self.a + self.b和之间有什么区别c = self.a + self.b
  2. 是否应该在self语句中声明所有在类内部声明的新变量?

谢谢你的帮助!

python class class-method

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

在matplotlib表中换行

我需要从字典列表中使用matplotlib创建一个表。

为此,我使用以下功能,该功能是在该站点的另一个答案中找到的:

import matplotlib.pyplot as plt
from matplotlib.externals import six
import matplotlib
matplotlib.rc('font', family='Arial')

def render_mpl_table(data, col_width=3.0, row_height=2, font_size=10,
                     header_color='#40466e', row_colors=['#f1f1f2', 'w'], edge_color='w',
                     bbox=[0, 0, 1, 1], header_columns=0,
                     ax=None, **kwargs):
    if ax is None:
        size = (np.array(data.shape[::-1]) + np.array([0, 1])) * np.array([col_width, row_height])
        fig, ax = plt.subplots(figsize=size)
        ax.axis('off')

    mpl_table = ax.table(cellText=data.values, bbox=bbox, colLabels=data.columns, **kwargs)

    mpl_table.auto_set_font_size(False)
    mpl_table.set_fontsize(font_size)

    for k, cell in six.iteritems(mpl_table._cells):
        cell.set_edgecolor(edge_color)
        if k[0] == 0 or k[1] < header_columns:
            cell.set_text_props(weight='bold', color='w', wrap=True)
            cell.set_facecolor(header_color)
        else:
            cell.set_facecolor(row_colors[k[0]%len(row_colors) ])
    return ax
Run Code Online (Sandbox Code Playgroud)

问题是,即使我将属性放在,也无法将文本包装在单元格中 …

python matplotlib

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

通过 R 中的行字符串值更改列值

我在处理一组数据时遇到问题。我想更改列的值,仅针对数据行中的某些值。我的表具有以下结构:

  Var1   Var2
1   A    High
2   A    High
3   A    High
4   B    High
5   B    High
6   B    High
7   C    High
8   C    Low
9   C    Low
10  C    Low
Run Code Online (Sandbox Code Playgroud)

现在,我想将“Var2”值更改为“Medium”,仅当 Var 1 为 C 时。谢谢您的帮助!:) 阿林。

r rename

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

在某些位置添加子矩阵

我有一个形状为 40x40 的测试矩阵 (z),用零填充。

我需要在测试矩阵的特定位置添加 4 个形状子矩阵,称为 c1、c2(5x5)、c3(7x7) 和 c4(9x9)。

我想将子矩阵中心放置在各自的位置,然后简单地执行元素的添加。测试矩阵中的位置为:z(9,9)、z(9,29)、z(29,9)、z(29,29)。

我尝试查看这些线程,但无法得到如何解决我的问题的明确答案。 如何在 Python/NumPy 中从数组的中心点添加不同的数组 添加不同大小/形状的移位 NumPy 矩阵

我尝试过的代码示例:

def zero_matrix(d):
    matrix = np.zeros((d,d), dtype=np.float)
    return matrix

z = zero_matrix(40)

c1 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
c2 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
c3 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
c4 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')


def adding(z):
    for i in range(z.shape[0]):
        for j in range(z.shape[1]):
            if i == 9 and j==9:
                c1mid = c1.shape[0]//2
                z[i,j] = c1[c1mid,c1mid] …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix

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

将字符串拆分为两个单词的列表,重复最后一个单词

我需要将一个字符串拆分成每两个单词的列表,但重复每对单词的最后一个单词.这是我尝试过的,通过使用我发现的其他问题的例子:

line = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."""

def split_line(in_line):
    line_sp = line.split(" ")
    line_two = [" ".join(line_sp[i:i + 2]) for i in range(0, len(line_sp), 2)]
    return line_two

print(split_line(line))
Run Code Online (Sandbox Code Playgroud)

结果如下:

['Lorem ipsum', 'dolor sit', 'amet, consectetur', 'adipiscing elit,', 'sed do', 'eiusmod tempor', 'incididunt ut', 'labore et', 'dolore magna', 'aliqua.']
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是:

['Lorem ipsum', 'ipsum dolor', 'dolor sit', 'sit amet', 'amet, consectetur', 'consectetur adipiscing', ...]
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它工作?谢谢!

python string split list

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

'as'运算符有什么作用?

我正在从Zed Shaw的学习Python中学习Python的基础知识.我目前正在第36章(符号审查),并遇到了'as'运算符.我需要在Python中搜索它的用途.我知道这个问题很广泛,但我没有在python.docs或SO上找到任何东西.这个运营商做什么?

python methods operator-keyword

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

合并reportlab表中的列

我正在尝试创建一个表,reportlab该表可以具有需要在所有或某些列之间合并的值。

这是我的示例,我需要在所有五列中合并第一行。我尝试了该('SPAN', (0, 0), (-1, -1))行,在此示例中对其进行了注释,以便您可以看到表的初始外观。如果取消注释该行,则只会将第一行写入pdf。

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph, Table, TableStyle
from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT, TA_CENTER
from reportlab.lib import colors

width, height = A4
styles = getSampleStyleSheet()
styleN = styles["BodyText"]
styleN.alignment = TA_LEFT
styleBH = styles["Normal"]
styleBH.alignment = TA_CENTER

def coord(x, y, unit=1):
    x, y = x * unit, height - y * unit
    return x, y

# …
Run Code Online (Sandbox Code Playgroud)

python pdf reportlab

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

检查单元格中是否包含Excel中的链接

我试图检查列中的值(例如A)是否包含链接,如果为true,则在列B中,我想键入文本,例如:link.我有很多记录(10 000),所以手工做这将花费很多时间.谢谢.

excel hyperlink

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