Найти индекс в списке, используя Python 3 - PullRequest
0 голосов
/ 26 октября 2018

Опять у меня проблемы с синтаксисом Python (Использование Python 3)

f=["-5","-4","-3","-2","-1","0","1","2","3","4","5"]
print(f.index('-'))

что я делаю не так, потому что это дает мне

Traceback (most recent call last):
File "python", line 4, in <module>
ValueError: '-' is not in list

?

Мне нужен индекс в списке или массиве, чтобы заменить отрицательный знак на M Мне также может понадобиться помощь с кодом замены.

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

Поскольку в принятом ответе используется понимание списка, приведенный ниже код такой же, но с простым циклом For.

f=["-5","-4","-3","-2","-1","0","1","2","3","4","5"]

for i, x in enumerate(f):
    f[i] = x.replace("-","M")

print(f)

Примечание: это будет работать, только если ваш список содержит только строки.

0 голосов
/ 26 октября 2018

Ошибка очень ясна.Ни один из элементов списка f не равен - .Если вы хотите получить индекс любого элемента в f, вам следует использовать метод list.index, как показано ниже.

f=["-5","-4","-3","-2","-1","0","1","2","3","4","5"]
f.index("0")

>>> 5

Индекс элемента "0" в f равен 5 .То есть "0" является шестым элементом f.

Если вы хотите заменить каждое вхождение "-" на M в f, вы можете использовать любой из двух методов, предложенных @soon и @Anthony, или вы можете использовать регулярные выражения и понимание списка .Я также приложил некоторый код.

import re
[re.sub('-', 'M', x) for x in f]

>>> ['M5', 'M4', 'M3', 'M2', 'M1', '0', '1', '2', '3', '4', '5']

Я думаю, было бы полезно взглянуть на этот w3Schools Tutotial в список индексов .

0 голосов
/ 26 октября 2018

list.index ищет точное совпадение. Если вы хотите заменить знак минуса на M для всех элементов, вы можете перебрать список и вызвать str.replace для каждого элемента:

In [14]: f=["-5","-4","-3","-2","-1","0","1","2","3","4","5"]

In [15]: [x.replace('-', 'M') for x in f]
Out[15]: ['M5', 'M4', 'M3', 'M2', 'M1', '0', '1', '2', '3', '4', '5']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...