Я разбор по некоторым данным и сделали их в словарь следующим образом:граф и удалить дубликаты в ключах при сохранении значения
gen_dict = {
"item_C_v001" : "jack",
"item_C_v002" : "kris",
"item_A_v003" : "john",
"item_B_v006" : "peter",
"item_A_v005" : "john",
"item_A_v004" : "dave"
}
Я пытаюсь распечатать результаты в следующем формате:
Item Name | No. of Vers. | User
item_A | 3 | dave, john
item_B | 1 | peter
item_C | 2 | jack, kris
, где он будет табулятами подобных версий в 1 линию, в то время как подсчитывать, сколько версий есть и в то же время, с указанием имен пользователей ..
у меня возникли проблемы в Инте решетка в именах пользователей. Я использовал команду set()
, и это кажется применимым для всех моих трех строк вывода. Несмотря на это, в то время как мои «Название товара» и «Нет. Верса. столбец, кажется правильным, есть ли способы, по которым я могу проверить, совпадает ли количество найденных версий с именем? Я могу считать это вручную, если у меня есть небольшие данные, но что, если я получу большие данные?
strip_ver_list = []
user_list = []
for item_name, user in gen_dict.iteritems():
# Strip out the version digits
strip_ver = item_name[:-3]
strip_ver_list.append(strip_ver)
user_list.append(user)
# This will count and remove the duplicates
versions_num = dict((duplicate, strip_ver_list.count(duplicate)) for duplicate in strip_ver_list)
for name, num in sorted(versions_num.iteritems()):
print "Version Name : {0}\nNo. of Versions : {1}\nUsers : {2}".format(name, num, set(user_list))
Это Ouput я получил:
Item Name | No. of Vers. | User
item_A | 3 | set(['dave', 'john', 'jack', 'kris', 'peter'])
item_B | 1 | set(['dave', 'john', 'jack', 'kris', 'peter'])
item_C | 2 | set(['dave', 'john', 'jack', 'kris', 'peter'])
Это единственный метод, который я могу придумать из .. Но если есть какие-либо другие жизнеспособные методы, чтобы обойти эту проблему, пожалуйста, доля со мной
Что такое 'duplicate'? – roganjosh
Отредактировано, я пропустил часть. – dissidia