从列表中删除较旧的元组

时间:2016-11-03 18:52:16

标签: python

我有一个路径和日期列表:

(.iml)

我想删除旧日期的项目并返回:

def map(fn, arrays, dtype=tf.float32):
    # assumes all arrays have same leading dim
    indices = tf.range(tf.shape(arrays[0])[0])
    out = tf.map_fn(lambda ii: fn(*[array[ii] for array in arrays]), indices, dtype=dtype)
    return out

# example: batch affine tranformation
x = tf.random_normal([4,5,6])
M = tf.random_normal([4,6,10])
b = tf.random_normal([4,10])

f = lambda x0,M0,b0: tf.matmul(x0,M0) + b0
batch_y = map(f, [x,M,b])

2 个答案:

答案 0 :(得分:2)

您可以使用dict创建唯一的实体:

>>> my_dict = {}
>>> for key, value in myList:
...     if key in my_dict:
...         if my_dict[key] < value:
...             my_dict[key] = value
...     else:
...         my_dict[key] = value
...

其中myList持有的值如上所述。要将dict转换为list tuples,请将dict.items()转换为:

>>> new_list = my_dict.items()
>>> new_list
[('Y:\\Resources\\Project 4', '2016-04'), 
 ('Y:\\Resources\\Project 3', '2016-02'), 
 ('Y:\\Resources\\Project 2', '2014-01'), 
 ('Y:\\Resources\\Project 1', '2016-08')] 

注意: dict不维护元素的顺序。如果您想维护订单,请使用collections.OrderedDict()

答案 1 :(得分:1)

这将过滤您的列表:

newList = filter(lambda x:x[1] > '2015-01', myList) # or whatever date you choose

替换你自己的约会。

另请注意,这仅适用,因为您的日期是一个有效ISO格式的字符串。否则字符串比较将无效。