我遇到了一个小问题.我有一个命令管道输出到awk但我想逐个捕获数组的输出.
我的例子:
myarr=$(ps -u kdride | awk '{ print $1 }')
Run Code Online (Sandbox Code Playgroud)
但是我将所有输出捕获到一个用逗号分隔的巨大字符串中:
output: PID 3856 5339 6483 10448 15313 15314 15315 15316 22348 29589 29593 32657 1
Run Code Online (Sandbox Code Playgroud)
我也尝试过以下方法:
IFS=","
myarr=$(ps -u kdride | awk '{ print $1"," }')
But the output is: PID, 3856, 5339, 6483, 10448, 15293, 15294, 15295, 15296, 22348, 29589, 29593, 32657,
1
Run Code Online (Sandbox Code Playgroud)
我希望能够将每个pid捕获到自己的数组元素中.设置IFS = '\n'不执行任何操作并保留原始输出.我需要做些什么改变来完成这项工作?
我有一个以下格式的文件:
995957,16833579
995959,16777241
995960,16829368
995961,50431654
Run Code Online (Sandbox Code Playgroud)
我想读取每一行,但将值拆分为适当的值.例如,第一行将分为:
x = 995957
y = 16833579
Run Code Online (Sandbox Code Playgroud)
由于它是一个字符串,当你读入它并且我想将它们转换为int并拆分它们时,我究竟会怎么做呢?任何帮助,将不胜感激.
谢谢!
我试图实现这个算法的更简单版本,但它比二次算法更好.我的想法主要是只用x坐标对点进行排序,并尝试从那里解决它.一旦我按x坐标对点阵列进行排序,我想迭代数组,基本上跳过距离大于我前两点的点.
例如,我的currentminDist = x;
如果我正在观察的两对点的距离> x(仅通过其x coord dist),我忽略该点并在数组中移过它.
我有这个想法,但我有点坚持如何实际实现这一点(特别是条件部分).我有一个函数,它根据x坐标返回两点之间的距离.
我很困惑如何实际为我的循环写我的条件因为我想忽略一个点,如果距离恰好太远并仍然填写我的数组,其中将包含每个i的最近点的答案(我是当前点我在看).
任何提示或方向将不胜感激.我对编码算法知之甚少,所以非常令人沮丧.
这是我的代码的一部分:
for (i = 0; i < numofmypoints; i++)
{
for (int j = i + 1; (j < numpofmypoints) && ((inputpoints[j].x - inputpoints[i].x) < currbest); j++ )
{
currdist = Auxilary.distbyX(inputpoints[i],inputpoints[j]);
if (currdist < bestdist)
{
closest[i] = j;
bestdist = currdist;
}
}
}
Run Code Online (Sandbox Code Playgroud)
distbyX是我的函数,只返回两点之间的距离.
谢谢!
我想创建一个带有播放和停止按钮的简单gui来在python中播放mp3文件.我使用Tkinter创建了一个非常简单的gui,它包含2个按钮(停止和播放).
我创建了一个执行以下操作的函数:
def playsound () :
sound = pyglet.media.load('music.mp3')
sound.play()
pyglet.app.run()
Run Code Online (Sandbox Code Playgroud)
我将该功能添加为按钮播放的命令.我还做了一个不同的功能来阻止音乐:
def stopsound ():
pyglet.app.exit
Run Code Online (Sandbox Code Playgroud)
我将此功能添加为第二个按钮的命令.但问题是,当我点击游戏时,python和gui会冻结.我可以尝试关闭窗口,但它没有关闭,停止按钮没有响应.我知道这是因为pyglet.app.run()正在执行,直到歌曲结束,但我究竟如何阻止这个?当我点击按钮时,我希望gui停止播放音乐.关于我在哪里可以找到解决方案的任何想法?
我有一个包含许多不同邮政编码的文件:
12345
12345-6789
1234567890
12345:6789
12345-7890
12:1234678
Run Code Online (Sandbox Code Playgroud)
我只想匹配具有格式代码12345或12345-6789,却忽略所有其他形式.
我有我的正则表达式:
grep -E '\<[0-9]{5}\>[^[:punct:]]|\<[0-9]{5}\>-[0-9]{4}' samplefile
它匹配,12345-6789因为"或"子句匹配该特定的一个.我很困惑为什么它在第一次不匹配,12345因为我的表达应该说"匹配5个数字但忽略任何标点符号".
我一直在研究SQLzoo问题,但是在JOIN教程问题#13中的最后一个问题上遇到了问题 - 列出每个匹配的每个匹配,如图所示.
链接:http://sqlzoo.net/wiki/The_JOIN_operation
在他们提供的示例代码中,它使用了一个案例.我修改它像这样:
SELECT game.mdate, game.team1,
CASE WHEN goal.teamid=game.team1 THEN 1 ELSE 0 END score1, game.team2,
CASE WHEN goal.teamid=game.team2 THEN 1 ELSE 0 END score2
FROM game, goal WHERE game.id=goal.matchid
GROUP BY game.mdate, goal.matchid, game.team1, game.team2
Run Code Online (Sandbox Code Playgroud)
他们建议在score1/score2上使用SUM函数将提供答案.我对如何在SQL中创建的这两列使用SUM函数感到困惑.
任何人都可以提供一个关于如何做或提到如何以更好的方式编写此SQL查询的提示?