Заменить элементы в списке, если условие

Из руководства MySQL

Операторы INSERT, использующие синтаксис VALUES, могут вставлять несколько строк. Для этого включите несколько списков значений столбцов, каждый из которых заключен в круглые скобки и разделен запятыми. Пример:

blockquote>
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

0
задан Ampersand 17 January 2019 в 06:06
поделиться

2 ответа

Вы можете разобрать строку в число, проверить округление (десятичное число больше или меньше 0,5) и преобразовать ее обратно в строку

import math 

myList = ['-1.02', '-1.03', '-0.81', '-0.17', '-0.07', '0.22', '0.88', '0.88', '0.69']
result = [0] * len(myList)

for i in range (len(myList)):
    num = float(myList[i])
    if num - math.floor(num) < 0.5:
        result[i] = str(math.floor(num)) # round down
    else:
        result[i] = str(math.ceil(num)) # round up
print(result)
0
ответ дан Andreas 17 January 2019 в 06:06
поделиться

Ваш код уже почти там. Нет необходимости ссылаться на элементы по индексу.

myList = ['-1.02', '-1.03', '-0.81', '-0.17', '-0.07', '0.22', '0.88', '0.88', '0.69']
for i in myList:
    if i[0] == '-' and int(i[-2]) > 5:
       do sth...

Если все, что вы хотите сделать, это округлить, то вы можете использовать понимание списка.

roundlist = [round(float(i)) for i in myList]
0
ответ дан kerwei 17 January 2019 в 06:06
поделиться
Другие вопросы по тегам:

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