С вашим кодом довольно много проблем.
Как @Kenny Ostrom указал в своем ответе, ваш for
формат неверен.
Формат цикла for
:
for new_variable_name in list:
print(new_variable_name)
new_variable_name
назначается каждому элементу в этом списке
for
циклы повторяются для каждого элемента в списке один раз. В вашем случае
for char in str1
print(char)
напечатало бы
a
a
b
f
h
Другая проблема, с которой вы столкнулись, - это ненужный цикл while
. Вы окружаете свой цикл for
в цикле while
, который будет продолжать работать и не останавливаться. Если у вас не было цикла for
, это может быть полезно для вас, но в этом нет необходимости, поскольку вы уже используете цикл for
.
Структура вашей программы должна выглядеть примерно так, если вы хотите использовать цикл for:
list1=['a','b','c']
str1='aabfh'
i=0
for character in str1:
'''
Some code here that figures out **if** the character is in list1 and then prints that character.
'''
Вы сможете понять это отсюда.
Решение состояло в том, чтобы составить отдельную таблицу с varbinary полем и сделать 1 к 1 отношения между таблицами
Один путь состоял бы в том, чтобы спроектировать Ваш набор результатов в анонимный тип, когда Вам не нужен блоб:
from entity in context.Entities
select new
{
Field1 = entity.Field1,
Field2 = entity.Field2
}
В этом примере только будут загружены Field1 и Field2.
Этот метод имеет недостаток, что Вы не можете обновить возвращенный экземпляр и сделать контекст. SaveChanges. Хотя я утверждал бы, что сохранение экземпляра без полного знания экземпляра является небезопасной границей. Этот метод хорош, когда Вы хотите длинный список возврата экземпляры, но будете запрашивать для единственного экземпляра, varbinary поле и все перед фактическим обновлением.