我正在使用python2.6.2,因为它是与Abaqus一起安装的(我正在为它编写一个脚本)
我有一个问题做不同的集。 我创建了三个集合,如下所示:
TOT_list = set(xrange(n_unitcells))
TOT_par = list(set(itertools.product(TOT_list, repeat = 2)))
结果是什么
TOT_par = [(1, 3), (3, 0), (2, 1), (0, 3), (4, 0), (1, 2), (3, 3), (4, 4), (2, 2), (4, 1), (1, 1), (3, 2), (0, 0), (0, 4), (1, 4), (2, 3), (4, 2), (1, 0), (0, 1), (3, 1), (2, 4), (2, 0), (4, 3), (3, 4), (0, 2)]
以及
POS_in = [0,0]
POS_par = [[1,2],[2,3],[3,4]]
我需要从第一个集合(TOT\u par)中提取第二个集合(POS\u in和POS\u par),即类似于:
TOT_new = list(set(TOT_par) - set(POS_in) - set(POS_par))
显然,试图直接使用集合之间的差异是行不通的。 我试着写一些循环,但我只是更困惑
你施法不够深入
set(POS_par)
根本不起作用,因为它包含list
s,一种不可损坏的类型要解决此问题,请为每个
list
提供一个标准结构(类似于POS_par
的嵌套list
将很好地工作),将每个对转换为tuple
,然后将tuple
的容器转换为set
:然后你可以做
TOT_new = list(set(TOT_par) - POS_in_set - POS_par_set)
相关问题 更多 >
编程相关推荐