我有一个列表列表,类似于
[[1, 2, 3,],[4, 5, 6,],[7, 8, 9]].
以图形方式表示为:
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种优雅的方法来检查单元格的邻居值,水平,垂直和对角线.例如,[0] [2]的邻居是[0] [1],[1] [1]和[1] [2]或者数字2,5,6.
现在我意识到我可以做一个暴力攻击检查每个值a la:
[i-1][j]
[i][j-1]
[i-1][j-1]
[i+1][j]
[i][j+1]
[i+1][j+1]
[i+1][j-1]
[i-1][j+1]
Run Code Online (Sandbox Code Playgroud)
但这很简单,我想通过看一些更优雅的方法我可以学到更多东西.
我如何使用shell单行和常用GNU工具来连接两个文件中的行,如笛卡尔积?什么是最简洁,美丽和"linuxy"的方式?
例如,如果我有两个文件:
$ cat file1
a
b
$ cat file2
c
d
e
Run Code Online (Sandbox Code Playgroud)
结果应该是
a, c
a, d
a, e
b, c
b, d
b, e
Run Code Online (Sandbox Code Playgroud) 我DataGridView绑定了一个List<myClass>,然后用" Priority"中的" "属性对其进行排序myClass.所以我想把" DataGridViewRow" 拖到某个位置来改变它的" Priority"属性.
我怎么能"拖放"DataGridView行? 以及如何处理这个?
我喜欢使用以下习惯用法将列表组合在一起,有时候:
>>> list(itertools.chain(*[[(e, n) for e in l] for n, l in (('a', [1,2]),('b',[3,4]))]))
[(1, 'a'), (2, 'a'), (3, 'b'), (4, 'b')]
Run Code Online (Sandbox Code Playgroud)
(我知道有更简单的方法来获得这个特定的结果,但是当你想要迭代列表列表中的元素或类似的东西时,它会派上用场.当你使用生成器表达式时,麻烦就是这个变得容易出错.例如
>>> list(itertools.chain(*(((e, n) for e in l) for n, l in (('a', [1,2]),('b',[3,4])))))
[(1, 'b'), (2, 'b'), (3, 'b'), (4, 'b')]
Run Code Online (Sandbox Code Playgroud)
这里发生的是内部生成器表达式作为参数传递itertools.chain,所以在它们被评估时,外部生成器表达式已经完成,并且n固定在它的最终值,'b'.我想知道是否有人想办法避免这种错误,除了"不要那样做".
我有以下课程:
public class SupplierCategory : IEquatable<SupplierCategory>
{
public string Name { get; set; }
public string Parent { get; set; }
#region IEquatable<SupplierCategory> Members
public bool Equals(SupplierCategory other)
{
return this.Name == other.Name && this.Parent == other.Parent;
}
#endregion
}
public class CategoryPathComparer : IEqualityComparer<List<SupplierCategory>>
{
#region IEqualityComparer<List<SupplierCategory>> Members
public bool Equals(List<SupplierCategory> x, List<SupplierCategory> y)
{
return x.SequenceEqual(y);
}
public int GetHashCode(List<SupplierCategory> obj)
{
return obj.GetHashCode();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
我正在使用以下linq查询:
CategoryPathComparer comparer = new CategoryPathComparer();
List<List<SupplierCategory>> categoryPaths = (from i …Run Code Online (Sandbox Code Playgroud) 我有一个分段控件,用户可以选择如何订购列表.工作良好.
但是,我希望在点击已选择的段时,订单会被反转.我已经准备好了所有代码,但我不知道如何在这些段上注册水龙头.似乎唯一可以使用的控制事件是UIControlEventValueChanged,但这不起作用(因为所选的段实际上没有变化).
这有解决方案吗?如果是这样,它是什么?
提前致谢!
这是什么原因?
我重写OnPaintBackground并绘制一个字符串.直到我在构造函数中调用它才会显示:
this.SetStyle ( ControlStyles.UserPaint, true );
Run Code Online (Sandbox Code Playgroud)
但后来我没有在列表视图中看到这些项目.
为什么以及如何解决这个问题?
编辑:代码
protected override void OnPaintBackground ( PaintEventArgs pevent )
{
base.OnPaintBackground ( pevent );
// Create string to draw.
String drawString = "76";
// Create font and brush.
Font drawFont = new Font ( "Arial", 36 );
SolidBrush drawBrush = new SolidBrush ( Color.Blue );
// Create point for upper-left corner of drawing.
PointF drawPoint = new PointF ( 150.0F, 150.0F );
// Draw string to screen.
pevent.Graphics.DrawString ( drawString, drawFont, …Run Code Online (Sandbox Code Playgroud) 假设我在3D空间中有两个点(a和b)以及一个名为n的固定轴/单位向量.
我想创建一个旋转矩阵,最小化点a(未旋转)和旋转点b之间的欧几里德距离.
例如:
Q := matrix_from_axis_and_angle (n, alpha);
find the unknown alpha that minimizes sqrt(|a - b*Q|)
Run Code Online (Sandbox Code Playgroud)
顺便说一句 - 如果使用单位四元数可以更容易地表达解决方案/算法并继续使用它们.我只是使用矩阵来表达我的问题,因为它们被更广泛地使用.
哦 - 我知道有一些退化的情况(a或b完全符合等等).这些可以忽略.我只是在寻找可以计算单个解决方案的情况.
我做了一个非常简单的程序,它为我自动化了一些东西.我用c ++编写它,它在Windows上运行.在Codeblocks IDE内部使用GDB进行调试时,我无处可获得许多断点.我不知道可能导致这个问题的原因.断点似乎与内存问题有关...因为当我修复了我检测到的内存泄漏时,断点数量明显减少了.
gdb告诉我的确切事情是:
Program received signal SIGTRAP, Trace/breakpoint trap.
In ntdll!TpWaitForAlpcCompletion () (C:\Windows\system32\ntdll.dll)
Run Code Online (Sandbox Code Playgroud)
我在程序中多次得到这个.我认为我可能会做一些非常错误的事情,即使程序看起来运行得很好并且它完成了我想要它做的事情.任何人都可以告诉我这是什么问题,因为我不知道在哪里看?如果它不是问题,那么有没有人知道如何禁用它,因为这阻止我进入我自己设置的断点?
提前致谢!
编辑:(添加GDB的输出where命令):我在哪里可以检查每个函数的作用,所以我可以看到我做错了什么?
#0 0x76fefadd in ntdll!TpWaitForAlpcCompletion () from C:\Windows\system32\ntdll.dll
#1 0x0028e894 in ?? ()
#2 0x76fb272c in ntdll!RtlCreateUserStack () from C:\Windows\system32\ntdll.dll
#3 0x00657fb8 in ?? ()
#4 0x00657fb8 in ?? ()
#5 0x76f4b76a in ntdll!RtlDowncaseUnicodeChar () from C:\Windows\system32\ntdll.dll
#6 0x02070005 in ?? ()
#7 0x00000b10 in ?? ()
#8 0x0028e8dc in ?? ()
#9 0x76ff0b37 in ntdll!TpQueryPoolStackInformation () from C:\Windows\system32\ntdll.dll
#10 0x038b0000 in ?? () …Run Code Online (Sandbox Code Playgroud) 我是一个中级java编码器,编写一个图书管理员Java应用程序,由于某种原因,我无法弄清楚是否应该使用dueDate.after(today)OR dueDate.before(today)方法来判断该书是否过期.通过键入两种方法,我得到了相当矛盾的价值观.因此,我也假设我的代码中还有一些其他错误,所以如果你能够确定哪个是正确的方法,这样我就可以继续修复另一个错误.