在元组列表上使用set时出错

时间:2018-01-09 17:50:53

标签: python set

我有一个数据矩阵。我不明白为什么在元组列表上执行set时会出现不可用的类型错误:

pairs=list(set(map(lambda line:{line[Column.TO],line[Column.FROM]},self.DataMatrix)))

line [Column.TO]是一个字符串,DataMatrix是一个列表列表

2 个答案:

答案 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的成员。当您将这些集合转换为tuplesfrozensets时,请使用map取消lambda以支持生成器表达式:

pairs = list(set((line[Column.TO],line[Column.FROM]) for line in self.DataMatrix))