Как прилагать две договоренности в python?

у меня есть договоренность, в которой я хочу сохранять контент другой договоренности, но я хочу сохранять то, что у него есть в нескольких положениях до того, чтобы прибывать в запятую, он состоит в том, что я получаю символы и хочу соединить слова, которые формируют эти символы отделяя их из-за запятых, это мой код:

import numpy as np

cadena=['c','a','s','a',',','p','e','r','r','o']
cadena2=[]
tamañocadena = len(cadena)
posicion = 0

for n in cadena:
    if cadena[n].value == ",":
        posicion = posicion + 1
        print("entre")
    cadena2[posicion].append(cadena2[posicion] + cadena[n])

print(cadena2)

Но он дает мне следующую ошибку: list индексы must be integers or slices, not str

0
задан 05.11.2019, 12:29
2 ответа

Он, потому что estГЎs перемешивая arrays со словарями. AdemГЎs, for помещает в "n" стоимость цепи ('c', 'в', 's', и т.д.) не она posiciГіn.

Например в:

if cadena[n].value == ",":

deberГ-схвати помещать:

if n == ",":

Другая ошибка, которая у тебя есть, - что estГЎs пробуя использовать несуществующий элемент:

cadena2[posicion].append()

array cadena2 estГЎ vacГ - или asГ - что будет давать тебе ошибку Г-ndice не существующий. SerГ - во что-то asГ - что deberГ-схвати делать:

Вґcadena2.append ()'

В любом случае я не могу понять хорошо ее lГіgica в том, что ты хочешь заставить Вїpuedes помещать пример?

0
ответ дан 01.12.2019, 12:42
  • 1
    Здравствуйте! то, за чем оно последует, состоит в том, что внутри договоренности я сохраняю несколько слов cará cter из-за cará cter и то, в чем я нуждаюсь, состоит в том, чтобы соединять слова, которые формируют эти символы, например в договоренности 1 сохранял: ' Q' ' U' ' E' ' S' ' O' тогда я хочу соединить в договоренности эти символы для того, чтобы в единственной posició n скажите ' QUESO' и как слова, которые я сохраняю cará cter из-за cará cter они отделены запятыми (' '), поэтому я хочу показать ему, что начиная с этой запятой я произошел со следующей posició n договоренности, чтобы сохранять следующее слово. – Anonima19 05.11.2019, 16:46
  • 2
    PD: Уже я попытался с n == " " и он дает мне ту же ошибку. – Anonima19 05.11.2019, 16:46

Проблема ты estГЎ происходя в этой части:

for n in cadena:
    if cadena[n].value == ",":

, когда ты говоришь for n in cadena, recorrerГЎ твой список возвращая тебе каждый элемент этой, а именно, для списка ['c', 'a', 's', 'a', ',', 'p', 'e', 'r', 'r', 'o']:

В первом раунде n valdrГЎ 'c', во второй n valdrГЎ 'a', в третьей n valdrГЎ 's', и т.д. поместив if cadena[n]... то, чего estГЎ делая в первом раунде cadena['c'], ahГ - что сказал тебе, что, чтобы соглашаться на список, Г-ndices должны быть nГєmeros или slices, например cadena[0], cadena[3], и т.д.

Способ решать эту проблему (хотя surgirГЎ другой mГЎs преуспеет) serГ, - чтобы заменять этих lГ-neas из-за:

for n in cadena:
    if n == ",":

Из всех форм, из-за которого я увидел в твоих комментариях, что ты хочешь достичь, все этот cГіdigo может меняться из-за:

cadena = ['c', 'a', 's', 'a', ',', 'p', 'e', 'r', 'r', 'o']
nuevaCadena = ''.join(cadena).split(',')
print(nuevaCadena)  # Esto devuelve ['casa', 'perro']

Сначала ты объединяешь все элементы списка с 'nadа ''.join(cadena), получая цепь текста 'casa,perro' и потом ты разделяешь ее по запятой split(',') получая список.

0
ответ дан 01.12.2019, 12:42

Теги

Похожие вопросы