私信  •  关注

Prune

Prune 最近创建的主题
Prune 最近回复了
3 年前
回复了 Prune 创建的主题 » 如何从python列表中删除类对象?

你眼前的问题是你做了 有一个元素叫做 Base(2, 5) 在这个列表中:你有三个对象描述符。您的呼叫 remove 不指 任何 在这三个元素中:它指的是第四个元素。是的,该元素恰好与一个列表元素具有相同的属性,但您尚未为其实现相等运算符 Base 认识到这一巧合。

蛮力方法是遍历列表并找到相应的元素:

for elem in obj:
    if (elem.x, elem.y) == (2, 5):
        obj.remove(elem)
        break
5 年前
回复了 Prune 创建的主题 » 二进制搜索树-插入方法-Python

问题很简单,你从来没有考虑过一棵新树的基本情况。将此中间子句添加到插入:

    if node is None:
        node = BinaryTreeNode(data)
    elif node.data is None:
        node.data = data
    else:
        if data < node.data:
        ...

每一个递归调用只会重复上一个调用:您不会将任务减少到更小的任务。因此,你有一个无限递归。

考虑反转字符串“abc”。在有效的形式中,递归步骤是

return reverse("bc") + 'a'

这将任务从3个字符的字符串减少到2个字符的字符串。下一个递归将是

return reverse("c") + b

... 当与父调用结合时,最终将返回“cba”。


失败版本的递归步骤为

return reverse("abc")

简言之,它称自己为 确切地

5 年前
回复了 Prune 创建的主题 » 在python的两个字典中定义交叉引用变量的函数
  • banana 是未定义的变量。使用 "banana" 相反。
  • if fruit in x 评估为 if "banana" in "b" ,这将是 False

您需要更改数据逻辑,以便访问和比较可能实际匹配的项。例如

if fruit == list1[x]:
5 年前
回复了 Prune 创建的主题 » 用python中的变量递增'schedule'modules day属性

表达式中的第三个元素必须是时间指示器或单位。危险的方法是生成所需的命令字符串(请参见 tutorial link, example 7 ),然后使用 literal_eval 执行命令。

另一种可能是将所需的元素放入列表,而不是它们的显示名称:

day_scheduler_list = [
    schedule.every().sunday,
    schedule.every().monday,
    ...
]
...
day_scheduler_list[i].at(str(xlsxSheet.cell_value(i+18,1))).do(job)
6 年前
回复了 Prune 创建的主题 » 无法发现python shell报告的类型错误

其他受访者的猜测是正确的: get_font_height 只需要 Window 对象作为参数,并通过正常的调用序列(即窗口是 self 争论)。字体高度返回为 int .

对输入字符串没有任何依赖性;不允许使用该参数,这就是您收到错误消息的原因。只需删除它并调用 window.get_font_height() .

5 年前
回复了 Prune 创建的主题 » 如何在python中简化变量的分数值
Fraction(str(b))

这就是如何转换变量的 价值 (而不是它的*名称)到字符串。

6 年前
回复了 Prune 创建的主题 » 在python中连接数据excel数据的循环文件名?

像这样的?将一致部分放入静态变量中;将变量部分放入列表中。建立另一个列表理解。

prefix = "Market_Information_System_Control_daily_trading_day_"
ext = ".xlsx"
dates  = ["170701",
          "170702",
          "170703",
          "170704",
          "170731"]
excel_names = [prefix + day + ext for day in dates]

print(excel_names)

结果:

['Market_Information_System_Control_daily_trading_day_170701.xlsx',
 'Market_Information_System_Control_daily_trading_day_170702.xlsx',
 'Market_Information_System_Control_daily_trading_day_170703.xlsx',
 'Market_Information_System_Control_daily_trading_day_170704.xlsx',
 'Market_Information_System_Control_daily_trading_day_170731.xlsx']
5 年前
回复了 Prune 创建的主题 » 将python for循环转换为c

C 没有这样的等价物;您需要构建自己的类,可能需要使用 struct 对于键和值。 C++ unordered_map . C为我们提供了System.Collections.Generic,用于可比较的表示。

这能让你动起来吗?

6 年前
回复了 Prune 创建的主题 » python—从函数调用中去掉括号?

认为 只需将“q”连接到 key :

   j["Q" + str(key)]=a[count]

这个变化给出了输出

{'Q0': 'a', 'Q1': 'b', 'Q2': 'c'}
['a', 'b', 'c']
{'Q0': 'd', 'Q5': 'e', 'Q6': 'd', 'Q7': 'a', 'Q1': 'd', 'Q3': 'e', 'Q4': 'e', 'Q2': 'b'}
['d', 'd', 'b', 'e', 'e', 'e', 'd', 'a']

有更好的方法来计算列表中的项目;我将把这些留给您的研究。

6 年前
回复了 Prune 创建的主题 » python排序字典列表

你只需要把你做的所有正确的事情结合起来:把键排序成一个元组 正确的引用方法 dict 条目:

>>> sorted(AccountValues, key=lambda x: (x["portfolio_ref"], -x["percent"]))
[{'tag': 'NetLiq', 'portfolio_ref': 1, 'value': '70976.05', 'percent': 100.0, 'currency': 'USD'},
 {'tag': 'FullInit', 'portfolio_ref': 1, 'value': '20642.95', 'percent': 0.0, 'currency': 'USD'},
 {'tag': 'FullMaint', 'portfolio_ref': 1, 'value': '21350.54', 'percent': 0.0, 'currency': 'USD'}]

更好的是,使用

sorted(AccountValues, key=itemgetter("portfolio_ref", "percent"))

你的第一次尝试失败是因为 x[1] x[4] 词典中的引用无效:必须使用最初给出的标签,而不是相对位置。

您的第二次尝试是不足的,只是因为您没有辅助排序键。