TypeError: индексы списка должны быть целыми или кусочками, а не str; ошибка при повторении списка - PullRequest
0 голосов
/ 19 апреля 2020
list1 = ['Ganga', 'Narmada', 'Kaveri', 'Tapi', 'Yamuna']
sum1 = 0
for i in list1:
  for j in list1[i]:
    sum1 += ord(int(j))
    list1.replace(i, sum1)
print(list1)

Я хочу заменить каждую строку списка list1 добавлением значения ascii для каждого символа этой конкретной строки. например вместо 'Ganga' я хочу напечатать (значение ASCII ('G') + значение ASCII ('a') + значение ASCII ('n') + значение ASCII ('g') + значение ASCII of ('a') и, следовательно, для каждой строки.

Я пытался, как указано выше, но я получаю сообщение об ошибке в строке

для j в list1 [i] как "TypeError: список индексов должны быть целыми числами или ломтиками, а не str "

Я знаю, почему произошла ошибка, но не знаю, как ее устранить. Может кто-нибудь помочь мне в решении этой ошибки.

Любой вид помощь будет высоко ценится.

Заранее спасибо

1 Ответ

1 голос
/ 19 апреля 2020

Если вы хотите перебирать символы каждой строки в вашем list1, вы должны сделать это следующим образом:

for string in list1:
    for char in string:
        ...

В вашем коде переменная i примет значения 'Ganga', 'Narmada', et c. И это действительно не индексы, вы не можете сделать list1['Ganda']. Следовательно, ваш TypeError.

Поскольку написание for x in xs не даст вам индексы, но элементы xs, например

for x in ('foo', 'bar', 'baz'):
    print(x)

напечатают

foo
bar
baz
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...