1,列表
返回排序列表的索引
>>> lis = [1,2,3,0,1,9,8]
>>> sorted(range(len(lis)), key=lambda k: lis[k])
[3, 0, 4, 1, 2, 6, 5]
>>>
这个更简单
idx_sort = np.argsort(lis)
列表按照指定索引排序
idx_sort = np.argsort(lis)
np.array(mol_dic["conformers"])[idx_sort].tolist()
list补全
def pad_list(x):
x += [0 for i in range(max(angle_group_num) - len(x))]
list(map(pad_list, labels))
map用法
zip 和 zip(*)用法
traindata = [(i,i,i) for i in range(8)]
traindata
# [(0, 0, 0),
# (1, 1, 1),
# (2, 2, 2),
# (3, 3, 3),
# (4, 4, 4),
# (5, 5, 5),
# (6, 6, 6),
# (7, 7, 7)]
a,b,c = map(list, zip(*traindata))
a,b,c
# ([0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7])
partial
from functools import partial
loader = DataLoader(dataset, batch_size=batchsize,
collate_fn=partial(collate_new, max_num_atom=max_num_atom,
wl_max_iter=wl_max_iter,
data_enhancement = False))
def collate_new(data_list, max_num_atom, wl_max_iter, data_enhancement=True):
#。。。。。。。
return 。。。