| | |
sortig a list
Please support our Python advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
•
•
Join Date: May 2008
Posts: 11
Reputation:
Solved Threads: 0
I cannot seem to figure this out. This part of a larger script that I am writing. I have a list that looks like this. The fields are servername, port and program. How do I sort it to get a tally of what servers are listening on what ports.
This is my list:
[['server1', '1045', 'winlogon.exe'],
['server1', '8001', 'ctxsgsvc.exe'],
['server1', '3704', 'winlogon.exe'],
['server1', '1043', 'snmp.exe'],
['server2', '1041', 'snmp.exe'],
['server2', '1040', 'bpjava-msvc.exe'],
['server3', '2226', 'winlogon.exe'],
['server4', '1045', 'winlogon.exe'],
['server4', '1049', 'svchost.exe'],
['server5', '1048', 'clussvc.exe'],
['server5', '4660', 'winlogon.exe'],
['server5', '4911', 'winlogon.exe'],
['server6', '2226', 'winlogon.exe'],
['server6', '1045', 'winlogon.exe'],
['server6', '4998', 'unsecapp.exe'],
['server7', '4001', 'winlogon.exe']]
This is what I want:
1045 is open on server1, server4
8001 is open on server1
2226 is open on server3, server6
etc...
So far this is what I have but it doen't quite work:
This is my list:
[['server1', '1045', 'winlogon.exe'],
['server1', '8001', 'ctxsgsvc.exe'],
['server1', '3704', 'winlogon.exe'],
['server1', '1043', 'snmp.exe'],
['server2', '1041', 'snmp.exe'],
['server2', '1040', 'bpjava-msvc.exe'],
['server3', '2226', 'winlogon.exe'],
['server4', '1045', 'winlogon.exe'],
['server4', '1049', 'svchost.exe'],
['server5', '1048', 'clussvc.exe'],
['server5', '4660', 'winlogon.exe'],
['server5', '4911', 'winlogon.exe'],
['server6', '2226', 'winlogon.exe'],
['server6', '1045', 'winlogon.exe'],
['server6', '4998', 'unsecapp.exe'],
['server7', '4001', 'winlogon.exe']]
This is what I want:
1045 is open on server1, server4
8001 is open on server1
2226 is open on server3, server6
etc...
So far this is what I have but it doen't quite work:
allports = list(set(total.keys()))
lines = total.values()
for port in allports:
for line in lines:
if line[1] == port:
data[port] = line[0]•
•
Join Date: Dec 2006
Posts: 1,028
Reputation:
Solved Threads: 289
Use a dictionary, with port number as the key, pointing to a list of servers running on that port.
Python Syntax (Toggle Plain Text)
allports = list(set(total.keys())) lines = total.values() data_dict = {} for port in allports: for line in lines: this_port = line[1] ## add key to dictionary if it doesn't exist, ## pointing to an empty list if this_port not in data_dict: data_dict[this_port] = [] data_dict[this_port].append(line[0]) keys = data_dict.keys() keys.sort() print keys
Linux counter #99383
![]() |
Similar Threads
- DropDown List (VB.NET)
- Help me make a list of database servers! (Database Design)
- How do I print a list of 'Favorites' ?? (Web Browsers)
- List Catagories (C)
- vB Sessions/Online list (PHP)
- Win98SE - clearing out startup list (Windows 95 / 98 / Me)
- A List of Acronyms (Geeks' Lounge)
- Posting List (DaniWeb Community Feedback)
Other Threads in the Python Forum
- Previous Thread: HTML table parse problem (beautiful soup)
- Next Thread: Fixing AttributeError
| Thread Tools | Search this Thread |
address anydbm app beginner changecolor cipher class conversion coordinates corners curves definedlines development dictionary dynamic events examples excel feet file float format ftp function generator getvalue gui handling homework images import input ip java keycontrol line linux list lists loan loop maintain matching maze millimeter mouse mysqldb number numbers output parsing path permissions port prime programming projects py2exe pygame pymailer python queue random rational raw_input recursion recursive scrolledtext searchingfile shebang slicenotation split string strings table terminal text thread threading time tkinter tlapse tooltip tuple tutorial type ubuntu unicode url urllib urllib2 valueerror variable variables vigenere web windows wx.wizard wxpython xlwt






