Запускаю 5 копий своей программы через pycharm, все они записывают данные время от времени в один и тот же файл. Чем это может грозить?Не думаю, что механизмы для работы с файлами Python чем-то отличаются от подобных механизмов в других языках. По этому, могу предположить, что если не вешать на файл блокировки (и не снимать их в последствии) - это может грозить хаотичностью этих самых данных в файле, а максимум - ошибкой во время записи (и то не факт).
if int(x) == x:
...
assert int(1.0) == 1.0
if type(x) is int:
...
data = [1.0, 1.23, 2.0, 2.71, 3.0, 3.14]
for x in filter(float.is_integer, data):
print(x)
d = dict((int(k), v) if k.isdigit() else (k, v) for (k, v) in d.items())
def convert(item):
try:
return int(item)
except ValueError:
return item
d = dict(zip(map(convert, d.keys()), d.values()))
>>> x = [['a', '3', '5', '7'], ['b', '1', '2', '3'], ['д', '1', '2', '3']]
>>> # сортируем по столбцам
>>> x_sort = list(zip(*x))
>>> x_sort
[('a', 'b', 'д'), ('3', '1', '1'), ('5', '2', '2'), ('7', '3', '3')]
>>> # убираем лишний кортеж (с буквами)
>>> x_sort = x_sort[1:]
>>> x_sort
[('3', '1', '1'), ('5', '2', '2'), ('7', '3', '3')]
>>> # переводим строки в числа
>>> x_to_int = [list(map(int, i)) for i in x_sort]
>>> x_to_int
[[3, 1, 1], [5, 2, 2], [7, 3, 3]]
>>> # ищем среднее, округляем до сотых
>>> x_avg_sum = ['{:.2f}'.format(sum(i)/3) for i in x_to_int]
>>> x_avg_sum
['1.67', '3.00', '4.33']