如果以另一个列表中的字符串开头,则替换为字符串

时间:2019-03-15 15:10:19

标签: python list

我有两个单词列表:XY。我仅在且仅当列表X中的单词与列表Y中单词的第一部分完全相同时,才用列表Y中的单词替换列表X中的单词。

例如,我想将单词“ engagement”(列表X)替换为“ engagement”(列表X)。我的列表如下:

X=['les', 'engage', 'du', 'dent', 'de', 'la', 'que', 'sont', 'aussi', 'ceux', 'des', 'dirigeants', 'de', 'la', 'société', '»', 'ferroviaire', ',', 'a-t-il', 'soutenu', 'de', 'des', 'élus', 'du', 'grand-est', 'réunis', 'à', 'l', '’', '.', 'le', 'président', 'de', 'la', 'république', ',', '(', 'à', 'droite', ')', ',', 'aux', 'tés', 'du', 'patron', 'de', 'la', 'sncf', ',', 'guillaume', ',', 'à', 'la', 'gare', ',', 'à', 'paris', ',', 'le', '1er', 'juillet', '2017.', 'van', 'der', 'l', '’', 'irrita', 'qui', ',', 'par', 'fois', ',', 's', '’', 'des', 'usa', 'de', 'la', 'sncf', 'face', 'aux', 'trains', 'suppri', 'ou', 'aux', 'dessertes', 'abandonnées', 'semble', 'avoir', 'aussi', 'saisi', 'le', 'président', 'de', 'la', 'république', '.', 'devant', 'des', 'élus', 'du', 'grand-est', ',', 'réunis', 'mardi', '26', 'février', 'à', 'l', '’', 'dans', 'le', 'cadre', 'du', 'grand', 'débat', ',', 'a', 'eu', 'des', 'mots', 'très', 'durs', 'contre', 'la', 'sncf', ',', 'qui', 'a', 'fermé', 'la', 'ligne', 'saint-dié', '-', 'le', '23', 'décembre', '2018', ',', 'alors', 'que', 'le', 'chef', 'de', 'l', '’', 's', '’', 'était', 'engagé', ',', 'durant', 'un', 'dans', 'les', 'tué', 'en', 'avril', '2018', ',', 'à', 'ce', 'qu', '’', 'elle', 'reste', 'opération', '.']
Y=['levant', 'lamés', 'devant', 'quenelle', 'irritation', 'cenelle', 'usagers', 'lavant', 'avant', 'opérationnelle', 'supprimés', 'engagements']

为此,我必须逐项比较两个列表中的项并替换项,对吗?我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以遍历两个列表,如果startswithtf.reset_default_graph() a = tf.placeholder(dtype=tf.float32,shape=(), name='a') d = tf.placeholder(dtype=tf.float32,shape=(), name='d') b = tf.get_variable(name='b', initializer=tf.zeros_like(d), use_resource=True) c=a+b with tf.control_dependencies([c]): b_init = tf.assign(b, d) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print(sess.run([b_init,c,b], feed_dict={a:5.,d:10.})) Y中的给定字符串,请从X中选择给定的字符串,因此您不必循环遍历break中的所有值,否则保留Y中的字符串:

X

输出

X = ['les', 'engage', 'du', 'dent', 'de', 'la'...
Y = ['levant', 'lamés', 'devant', 'quenelle', 'irritation'...

l = []
for x in X:
    for y in Y:
        if y.startswith(x):
            # append y if the string starts with x
            l.append(y)
            # First match. Break to next x
            break
    # for-else statement
    # If no strings in y begin with x, append x
    else: 
        l.append(x)