替换列表中的值(列表重叠)

时间:2018-08-03 23:13:48

标签: python python-3.x list

好的,如果您不懂该语言,输出可能不清楚。这是示例:

        0       1       2         3       4
x = ['text1','text2','text3'  ,'text4','text5']   - scrapped_sentence[-30+position:position+30], where position is taken from re.finditer
y = [  '-'  ,  '-'  ,['text1'],  '-'  ,['text2']] - texts from re.findall
out=[  '-'  ,  '-'  ,  text1  ,  '-'  , 'text2']  - scrapped sentence

问题:

我正在尝试找出在不是负数的地方将一个列表替换为另一个列表的代码。

第一个列表的索引列表:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

第二个列表的索引列表:[37, 39, 41, 42, 43, 50, 63, 69]

第一个列表:

['gospodarcze: gospodarcze ', 'parking: parkingo', 'parking: parkingo', 'garaż: garaże', 'garaż: garaże', 'garaż: garaże', 'garaż: garaże', 'ogród: ogród.', 'ogród: ogród.', 'ogrod: ,ogrode', 'ogrod: ,ogrode', 'remon: remont', 'aneks: anekse', 'aneks: anekse', 'zabudow: zabudowi', 'zabudow: zabudowi']

在第一个列表中,将会有更多的字符(句子+/- 60个字符。)。这是简短的(+ / 1个字符。),以便于观看。

第二个列表:

['-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', ['gospodarcze'], '-', ['parking', 'parking'], '-', ['garaż', 'garaż', 'garaż', 'garaż'], ['ogród', 'ogród'], ['ogrod', 'ogrod'], '-', '-', '-', '-', '-', '-', ['remon'], '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', ['aneks', 'aneks'], '-', '-', '-', '-', '-', ['zabudow', 'zabudow'], '-', '-', '-', '-', '-', '-', '-', '-']

所需的输出与列表重叠。我知道现在这是不可能的,因为“第一列表”应该具有一些嵌套值,例如'parking: parkingo', 'parking: parkingo。仍在努力。

['-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', 'gospodarcze: gospodarcze', '-', ('parking: parkingo', 'parking: parkingo'), '-', ('garaż: garaże', 'garaż: garaże', 'garaż: garaże', 'garaż: garaże'), ('ogród: ogród.', 'ogród: ogród.'), ('ogrod: ,ogrode', 'ogrod: ,ogrode'), '-', '-', '-', '-', '-', '-', remon: remont, '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', (aneks: anekse', 'aneks: anekse'), '-', '-', '-', '-', '-', ('zabudow: zabudowi', 'zabudow: zabudowi), '-', '-', '-', '-', '-', '-', '-', '-']

我正在尝试以下代码:

for h in position_list_k: #postion_list_k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
    for n, i in enumerate(lista_j):
        if i != '-':
            lista_j[n] = lista_k[h]
#lista_k - 1st list, lista_j - 2nd

也尝试过

jk = []
for i in lista_j:
    if i == '-':
        jk.append(lista_j)
    else:
        jk.append(lista_k)
print(jk)

但是输出(第一次尝试)是这样的:

['gospodarcze: gospodarcze ', 'parking: parkingo', 'parking: parkingo', 'garaż: garaże', 'garaż: garaże', 'garaż: garaże', 'garaż: garaże', 'ogród: ogród.', 'ogród: ogród.', 'ogrod: ,ogrode', 'ogrod: ,ogrode', 'remon: remont', 'aneks: anekse', 'aneks: anekse', 'zabudow: zabudowi', 'zabudow: zabudowi']

['-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', 'zabudow: zabudowi', '-', 'zabudow: zabudowi', '-', 'zabudow: zabudowi', 'zabudow: zabudowi', 'zabudow: zabudowi', '-', '-', '-', '-', '-', '-', 'zabudow: zabudowi', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', 'zabudow: zabudowi', '-', '-', '-', '-', '-', 'zabudow: zabudowi', '-', '-', '-', '-', '-', '-', '-', '-']

如果我更倾向于打印列表,我将得到15个列表(h),第一个列表中的每个其他单词,但样式相同。

此列表中的主要问题是第一个列表应具有嵌套列表或元组。如果是这样,则两个列表将具有相同数量的索引。

1 个答案:

答案 0 :(得分:0)

大声笑我。睡觉对编码很有帮助。这是代码:

#for j to 77:
for m in re.finditer(HEADERS[j], p):
            #print((m.start(),m.end()), m.group())
            m_start.append(m.start())
            m_end.append(m.end())
            x = m_start[0]
            y = m_end[0]
        #extra line (extra logic as benvc mentioned):
        if m_start and m_end != None:
            print(m_start,m_end,m.group())