我有一个数据矩阵。我不明白为什么在元组列表上执行set时会出现不可用的类型错误:
pairs=list(set(map(lambda line:{line[Column.TO],line[Column.FROM]},self.DataMatrix)))
line [Column.TO]是一个字符串,DataMatrix是一个列表列表
答案 0 :(得分:1)
您没有在元组列表中使用void s_PreviewMouseMoveEvent(object sender, MouseEventArgs e)
{
if (sender is ListBoxItem && e.LeftButton == MouseButtonState.Pressed)
{
ListBoxItem draggedItem = sender as ListBoxItem;
DragDrop.DoDragDrop(draggedItem, draggedItem.DataContext, DragDropEffects.Move);
draggedItem.IsSelected = true;
}
}
,而是在set()
列表中使用set()
。将括号set()
更改为括号{}
:
()
例如,下面演示了如何查找“从地图函数生成的唯一对”。
pairs=list(set(map(lambda line:(line[Column.TO],line[Column.FROM]),self.DataMatrix)))
答案 1 :(得分:1)
不可取消,sets
不能成为set
的成员。当您将这些集合转换为tuples
或frozensets
时,请使用map
取消lambda
以支持生成器表达式:
pairs = list(set((line[Column.TO],line[Column.FROM]) for line in self.DataMatrix))