Py学习  »  jfaccioni  »  全部回复
回复总数  4
3 年前
回复了 jfaccioni 创建的主题 » 在dict python中循环使用多个值

假设这是 something_dict :

something_dict = { 
    'item1' : 'value1',
    'item2' : 'value2',
    'item3' : 'value3',
    'item4' : {
      'category1' : 'value1',
      'category2' : 'value2',
      'category3' : 'value3',
      },
}

然后你可以做:

import pandas as pd

df1 = pd.DataFrame(something_dict.pop('item4'), index=[0])
df2 = pd.DataFrame(something_dict, index=[0])

print(df1)
# output:
#   category1 category2 category3
# 0    value1    value2    value3

print(df2)
# output:
#     item1   item2   item3
# 0  value1  value2  value3
5 年前
回复了 jfaccioni 创建的主题 » Python-函数的可选参数

使用默认值 None

def f(a, b, c=None, d=None, sum=True):
    if sum:
        return a+b
    else: 
        return a-b+c-d

这还允许您将错误检查逻辑添加到函数中-当sum为False时检查c和d是否存在:

def f(a, b, c=None, d=None, sum=True):
    if sum: 
        return a+b
    else: 
        if None in (c, d):
            raise TypeError('f requires c and d args with parameter sum=False')
        return a-b+c-d
5 年前
回复了 jfaccioni 创建的主题 » python中的board[x,y]`和board[x][y]`有区别吗?

这个 board[x, y] 语法可能应用于numpy数组,该数组接受此语法以实现行/列索引的切片操作。看看这些例子:

>>> x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])  # creates 2D array
>>> x
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

>>> x[1]  # get second row (remember, index starts at 0)
array([4, 5, 6])

>>> x[:, 2]  # get third column
array([3, 6, 9])

>>> x[1, 2]  # get element on second row, third column
6

>>> x[1][2]  # same as before but with non-broadcasting syntax (i.e. works for lists as you are used to)
6

>>> x[1, 0:2]  # get first two elements of second row  
array([4, 5])

>>> x[0:2, 0:2]  # subsets the original array, "extracting" values from the first two columns/rows only
array([[1, 2],
       [4, 5]])

当然,写作 my_list[x, y] 引发错误,因为 x, y 实际上是元组 (x, y) ,常规列表不能将元组用作索引值。

6 年前
回复了 jfaccioni 创建的主题 » 如何判断是否按下了两个qpush按钮(python)

使用简单的“真/假”标志检查按钮是否至少被按下一次。两个按钮都以设置为false的标志开始,所以我们可以在init方法中设置它。

然后将检查两个按钮是否都已按下的代码放入与它们相连的函数中。最后,如果检查通过,只需调用相应的“final”函数。

这是一个使用两个通用按钮的示例:

def __init__(self, parent=None):
    super(MorphingApp, self).__init__(parent)
    self.btn_01_pressed = False
    self.btn_02_pressed = False
    self.set_buttons()

def set_buttons(self):
    self.btn_01.clicked.connect(self.check01)
    self.btn_02.clicked.connect(self.check02)

def check01(self):
    self.btn_01_pressed = True
    if self.btn_01_pressed is True and self.btn_02_pressed is True:
        self.call_final_function()

def check02(self):
    self.btn_02_pressed = True
    if self.btn_01_pressed is True and self.btn_02_pressed is True:
        self.call_final_function()

def call_final_function(self):
    # do something great here

就像在你的文章中一样,我列举了一些实际代码所必需的部分(比如创建 QPushButton 小部件),但希望你能理解。