Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Применение циклов для работы со списками




Поиск максимума

Для поиска максимума Python имеет функцию max().Поэтому только для примера приведём реализацию поиска максимума:

from  random import  random

#Создаём случайный список

L=[0]*20

L=list(map(lambda x: random(),L))

print (L) 

#Поиск максимума

Lmax=L[0]       

for i in range(1,len(L)):

if L[i]>Lmax:

    Lmax=L[i]

print ('Lmax=',Lmax)

Сортировка

Для сортировки список в Python имеет встроенный метод sort. Поэтому только как пример учебной программы можно привести сортировку методом простых вставок.

#Сортировка методом простых вставок

#Перемещаем 1 элемент из списка L в список L1

L1=[L.pop()]

while len(L)>0:

x=L.pop() # Извлекаем элемент из списка L

for i in range(0,len(L1)): # Ищем место для вставки

if L1[i]>x:        #

L1.insert(i,x) # Вставляем в список L1

Break

else:

L1=L1+[x] #Если не вставили в цикле - вставляем последним.

print ('L1=',L1) 

Выбор/удаление элементов по условию

Наиболее естественный способ выбора или удаления элементов – использование генератора списков:

#Формируем список 1,2,3...99

L1=list(range(1,100))

#Выбираем элементы по условию

L2=[x for x in L1 if not (30<x<70)]

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

def my_remove(L,f):

"""Функция удаляет в списке L элементы, удовлетворяющие условию f"""

i=0

while i<len(L):

if f(L[i]):

L.pop(i)

else:

       i+=1

 

#Формируем список 1,2,3...99

L1=list(range(1,100))

#Функция, которая определяет, какие элементы необходимо удалить

def f1(x):

return 30<x<70

#Удаляем элементы, удовлетворяющие функции f1

my_remove(L1,f1)

print (L1)

Преимущество функции my_remove состоит в том, что она экономит память, но выполняется медленнее, чем генератор списка.  Хронометраж показал, что наиболее значительный вклад во время выполнения функции my_remove вносят проверки условий.

Словари

Словари реализуют отображение между именами (ключами, key) и объектами (элементами). Формат записи: {ключ1:значение1, ключ2:значение2…}

В следующем примере создается словарь, содержащий атомные массы некоторых химических элементов. Затем добавляется новый пункт и, наконец, вычисляется масса молекулы воды

atomic_mass = {'H': 1.,'C': 12., 'S': 32.}

atomic_mass['O'] = 16

print (atomic_mass['O'] + 2*atomic_mass['H'])

Или тепловой баланс двигателя, описанный с помощью словаря:

Balance={"q_e":.4607056475,"q_r":.1330927426e-1,"q_w":.7739854878e-1,"q_г":.3111795140,"q_м":.5584776238e-1,"q_нб":.8155925314e-1,"q_ТК":.1373464876}

print (list(map(lambda x:Balance[x],["q_e","q_r"])))

 

К словарям могут применяться следующие операции:

Операция Описание
x = d[k]  Обращение к элементу с ключом key
d[k] = x Присваивание элементу с ключом key
del d[k] Удаление элемента с ключом key
k in d Проверка наличия элемента с ключом key
len(d) Количество элементов в словаре

Удалим элемент 'O' из словаря из примера выше:

del atomic_mass['O']

print (atomic_mass)

Вывод:

{'C': 12, 'S': 32, 'H': 1.0}

В качестве ключей допускается использовать любые неизменяемые объекты, такие как строки, числа и кортежи. Кроме того, в качестве ключей можно использовать списки значений, разделенные запятыми, как показано ниже:

d = { }

d[1,2,3] = “foo”

d[1,0,3] = “bar”

Методы словарей

dict.clear() - очищает словарь.

dict.copy() - возвращает копию словаря.

classmethod dict.fromkeys(seq[, value]) - создает словарь с ключами из seq и значением value (по умолчанию None).

dict.get(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).

dict.items() - возвращает пары (ключ, значение).

dict.keys() - возвращает ключи в словаре.

dict.pop(key[, default]) - удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).

dict.popitem() - удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.

dict.setdefault(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).

dict.update([other]) - обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).

dict.values() - возвращает значения в словаре.

модуль csv содержит класс DictWritter, который позволяет в пару строк сохранить эти данные в таблицу. Применение выглядит так:

 

import csv

toCSV = [{'name':'bob','age':25,'weight':200},

    {'name':'jim','age':31,'weight':180}]

keys = toCSV[0].keys()

with open('people.csv', 'wb') as output_file:

dict_writer = csv.DictWriter(output_file, keys)

dict_writer.writeheader()

dict_writer.writerows(toCSV)

 

Множества

Операции над множествами

Типы set и frozenset поддерживают ряд общих операций:

Операция  Описание
s | t Объединение множеств s и t
s & t Пересечение множеств s и t
s – t Разность множеств s и t
s ^ t Симметричная разность множеств s и t
len(s) Количество элементов в множестве
max(s) Максимальное значение
min(s) Минимальное значение




Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 814 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

4172 - | 3917 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.