В Internet explorer, если новый url из того же домена, что и текущий url, окно будет открыто без адресной строки. В противном случае это приведет к появлению адресной строки. Одним из способов является открытие страницы из того же домена, а затем перенаправление с этой страницы.
Мое решение состоит в том, чтобы создать отображение UserName
в dict
в списке user_id
:
users = [[u'ken'], [u'ted']]
user_id = [
{u'UserName': u'ted', u'LastSeen': u'x'},
{u'UserName': u'ken', u'LastSeen': u'x'}
]
seen_map = {u['UserName']: u for u in user_id}
user_details = []
for u in users:
try:
user_details.append(seen_map[u[0]])
except KeyError:
user_details.append('{0} not found in list'.format(u[0]))
print user_details
# for users = [[u'ken'], [u'ted']]
# [{u'UserName': u'ken', u'LastSeen': u'x'}, {u'UserName': u'ted', u'LastSeen': u'x'}]
# for users = [[u'barby'], [u'ted']]
# ['barby not found in list', {u'UserName': u'ted', u'LastSeen': u'x'}]
Таким образом, вам нужно только один раз просмотреть список user_id
создать отображение, не один раз для каждого элемента в users
.
Таким образом, есть пара вещей не так. Сначала вы проверяете для каждой позиции user_id, равен ли каждый пользователь ей, поэтому вы будете переходить к остальным несколько раз для каждого случая в зависимости от количества ваших пользователей.
Другая проблема заключается в том, что вы должны добавить в else вместо замены строки, иначе вы потеряете то, что было сохранено в этой переменной.
Вот пример рабочего кода:
Оператор for, else делает else каждый раз, когда он не разрывается внутри, другими словами, когда вы не находите пользователя в списке, к которому вы добавляете эту строку. [ 114]
users = [[u'ken'], [u'ted']]
user_id = [
{u'UserName': u'ted', u'LastSeen': u'x'},
{u'UserName': u'ken', u'LastSeen': u'x'}
]
user_list = []
for user in users:
user_list.append(user[0])
a = user_list
user_details = []
for element2 in a:
for element in user_id:
if element['UserName'] == element2:
user_details.append(element)
break
else:
user_details.append([element2 + ' ' + 'not found in list'])
print(user_details)