| | |
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,056
Reputation:
Solved Threads: 298
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 |
Tag cloud for Python
ansi assignment avogadro backend beginner binary bluetooth character cmd code customdialog cx-freeze data decimals dictionary drive dynamic error examples excel exe file float format ftp function gnu graphics gui heads homework http ideas import input java leftmouse line linux list lists logging loop module mouse number numbers output parsing path pointer port prime program programming progressbar projects push py2exe pygame pyqt python random recursion recursive refresh schedule screensaverloopinactive script scrolledtext sqlite ssh statistics stdout string strings sudokusolver sum table terminal text thread threading time tkinter tlapse tricks tuple tutorial ubuntu unicode update urllib urllib2 variable wikipedia windows write wxpython xlib






