Удаление персонажей из кортежа - PullRequest
0 голосов
/ 12 октября 2011

Я использую

Users = win32net.NetGroupGetUsers(IP,'none',0),

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

(([{'name': u'Administrator'}, {'name': u'Guest'}, {'name': u'Tom'}], 3, 0),)

Я хочу очистить это, чтобы он просто выводил «Администратор, Гость, Том»Я пытался использовать полосы и заменить, но вы не можете использовать их на кортежах.Есть ли способ преобразовать это в строку, чтобы я мог манипулировать ею, или есть еще более простой способ сделать это?

Ответы [ 3 ]

4 голосов
/ 12 октября 2011

Не должно заканчиваться запятой:

Users = win32net.NetGroupGetUsers(IP,'none',0),  

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

Требуемые данные находятся в Users[0].

>>> print Users[0]
[{'name': u'Administrator'}, {'name': u'Guest'}, {'name': u'Tom'}]

Для распаковки этого списка словарей мы используем выражение генератора:

Users = win32net.NetGroupGetUsers(IP,'none',0)
print ', '.join(d['name'] for d in Users[0])
4 голосов
/ 12 октября 2011
', '.join(user['name'] for user in Users[0][0])
2 голосов
/ 12 октября 2011
input = (([{'name': u'Administrator'}, {'name': u'Guest'}, {'name': u'Tom'}], 3, 0),)    
in_list = input[0][0]    
names = [x['name'] for x in in_list]    
print names

[u'Administrator', u'Guest', u'Tom']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...