我和我的朋友正在做一个简单的 Python 项目。实际上,我们正在以自己的方式实现前缀并行求和算法。
我们正在创建和处理一个非常奇怪的格式的二叉树。我们希望将此格式转换为 Tree 打印库/软件(如 ete2)接受的格式。
因此,树的每一层都以这种方式推送到列表中
[ [level0], [level1], ... [level i-1], [root] ]
Run Code Online (Sandbox Code Playgroud)
在我们的格式中,每个内部列表(树的级别)都有偶数个节点或叶子。
例如,假设我们有这个输入:[1, 2, 3, 4, 5]
。这将产生以下输出列表:[[1, 2, 3, 4], [3, 7], [10, 5], [15]]
上述输出示例的问题在于,有时叶子不在最后一层,但它们包含在上层列表中。这使得处理列表列表和区分节点和叶子并将它们排列在正确位置变得困难。
我们想将其可视化如下:
http://i.imgur.com/BKrqNZi.png
其中括号中的数字是节点,其他数字是叶子。
为了产生这个输出树,我们想使用一个树绘图库。他们中的大多数人期望这种格式:[root, [left], [right]]
所以,在我们的例子中,我们的格式应该是这样的:
[15, [10, [3, [1], [2]], [7, [3], [4]] ], [5] ]
Run Code Online (Sandbox Code Playgroud)
因为我们目前无法重写代码的整个逻辑,所以我们正在寻找一种巧妙的方法将我们奇怪的格式转换成那种格式。
欢迎任何想法。非常感谢您提前。
我有一个字典列表(a),我正在尝试遍历字典搜索特定值,如果字典有该值,则将该字典添加到新的字典集合中.到目前为止我有
newList = {}
a = [{"one": "green", "two" : "blue", "three" : "red"},
{"two": "blue", "four" : "green", "five" : "yellow"},
{"two": "blue", "six": "white", "seven" : "black"}]
for index in range(len(a)):
if a[index][?] = ["blue"]:
newList.append(a[index])
Run Code Online (Sandbox Code Playgroud) 我有一个浮动列表,看起来像这样:
predictions_dec = [13.0, 8.6, 4.9, -1.5, 6.2, 7.7, 2.0, 10.0, 7.7, 12.7,...]
Run Code Online (Sandbox Code Playgroud)
我想清理这些数据,方法是给出高于10.0的数字10.0和低于0.0的数字(所以所有负数)为0.0.我正在使用以下if语句执行此操作:
predictions_clean = []
for pred in predictions_dec:
if pred >= 10:
predictions_clean.append(10.0)
if pred <= 0:
predictions_clean.append(0.0)
else:
predictions_clean.append(pred)
Run Code Online (Sandbox Code Playgroud)
这段代码似乎有效,但有趣的是:
len(predictions_dec)
1222
len(predictions_clean)
1816
Run Code Online (Sandbox Code Playgroud)
我对if语句的理解并不是那么好.在if语句中,我做错了什么?
我有下一个string
:
string = 'tuned 1372 root 6u REG 8,3 4096 102029349 /tmp/ffiabNswC (deleted)\ngmain 1372 2614 root 6u REG 8,3 4096 102029349 /tmp/ffiabNswC (deleted)\n'
Run Code Online (Sandbox Code Playgroud)
我需要将每个元素都string
放入其中list1[0][..]
,但是当我看到一个新行'\n'时,我必须将下一个元素放入list1[1][..]
一个多维列表,如下所示:
list1 = [["tuned", "1372", "root", "6u", "REG", "8,3", "4096", "102029349", "/tmp/ffiabNswC", "(deleted)"],
["gmain", "1372", "2614", "root", "6u", "REG", "8,3", "4096", "102029349", "/tmp/ffiabNswC", "(deleted)"]]
Run Code Online (Sandbox Code Playgroud)
我这样做split
,但它把我放在同一个维度.
我正在尝试解决我已经给出的编程任务,而且我没有任何想法如何去做.
这就是问题:
Skinny Pete受邀参加花园生日派对.他并不太喜欢派对,但听说生日蛋糕真是太棒了,他不想错过尝试它的机会.
只有一个小问题.在花园里安装了一个喷水灭火系统,通过了解他的朋友,很有可能有人将其作为派对恶作剧.皮特喜欢蛋糕,但真的不喜欢弄湿.幸运的是,他发现了一个花园的草图,其中有喷头的位置以及每个人可以洒多少水.
- 花园看起来像一个矩形,一面开放,房子在对面.
- 蛋糕将在房子里.
- 另外两边有围栏,所以不能通过那里进入,房子没有后门.皮特有兴趣知道是否有可能进入花园并进入房屋而没有任何被淋湿的风险.
为简单起见,我们可以认为花园的地图是笛卡尔坐标系.
花园是一个矩形,其边与轴平行,左下角在原点(0,0).
花园的入口是左侧,房子位于右侧.
洒水器表示为具有中心和半径的圆.走进这样一个圆圈内的任何地方可能会让你感到湿透.
出于这个问题的目的,由于皮特太瘦了,我们可以把他想象成一个在太空中旅行的点,用实数作为坐标.
输入规格标准输入的第一行包含两个空格分隔的整数H和W,即花园的高度和宽度.
下一行包含喷头N的数量.之后N行跟随有三个空格分隔的整数 - Xi,Yi和Ri.这是一个喷水器的描述,作为一个圆心,中心(Xi,Yi)和半径Ri.
1≤N≤128
1≤H,W≤1024
0≤Xi≤W
0≤Yi≤H
1≤Ri≤1024
输出规格
输出包含"CAKE"(不带引号)的单行,如果可以在不弄湿的情况下到达房屋,否则输出"NO CAKE"(不带引号).
提前感谢帮助者
嗨,大家好,并在下面的程序问题,它一直告诉我"主要方法没有在公共类CellularPhone中识别".任何帮助表示赞赏谢谢.
第1节:CellularPhone类
public class CellularPhone
{
private String phoneBrand; // variable get phone brand
private String cellularCarrier; // variable see cellular carrier
private String phoneColor; // variable to get phone color
// Accesor Method
//method to return the Phone Brand
public String getphoneBrand()
{
return this.phoneBrand;
}
// method to return cellular carrier
public String getCellularCarrier()
{
return this.cellularCarrier;
}
//method to return phone color
public String getPhoneColor()
{
return this.phoneColor;
}
//********************************************************
//Mutator method
//method to change …
Run Code Online (Sandbox Code Playgroud) 我在我的java程序中发现了一个奇怪的行为,这里我的代码看起来像这样
public class JavaTest {
private final int dataSize = (int) (Runtime.getRuntime().maxMemory() * 0.6);
public void test() {
{
System.out.println(dataSize);
byte[] data = new byte[dataSize];
}
// for (int i = 0; i < 10; i++) {
// System.out.println("Please be so kind and release memory");
// }
System.out.println(dataSize);
byte[] data2 = new byte[dataSize];
}
public static void main(String[] args) {
JavaTest jmp = new JavaTest();
jmp.test();
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我评论for
循环时Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
,我得到的是我能理解jvm堆sapce已满. …
##
numOfYears = 0
## Ask user for the CPI
cpi = input("Enter the CPI for July 2015: ")
## If they didn't enter a digit, try again
while not cpi.isdigit():
print("Bad input")
cpi = input("Enter the CPI for July 2015: ")
## Convert their number to a float
cpi = float(cpi)
while cpi <= (cpi * 2):
cpi *= 1.025
numOfYears += 1
## Display how long it will take the CPI to double
print("Consumer prices will double in …
Run Code Online (Sandbox Code Playgroud) python ×5
dictionary ×2
java ×2
list ×2
algorithm ×1
binary-tree ×1
if-statement ×1
math ×1
prefix-sum ×1
python-2.7 ×1
string ×1
while-loop ×1