d = { 'http://radio.weblogs.com/0104487/,Marc Barrot' : [ "John Robb's Radio Weblog", "Jon Udell", "Jon's Radio", "Linux Magazine", "Mac Net Journal", "New York Times: International", "O'Reilly Network Articles", "O'Reilly Safari", "Sam Ruby", "Scripting News", "Simon Fell", "TidBITS", ], 'http://radio.weblogs.com/0101679/,Sam Ruby' : [ "0xDECAFBAD", "Be Blogging", "BitWorking", "deem", "dive into mark", "DJ's Weblog", "ericfreeman.com", "Ernie the Attorney", "Gordon Weakliem's Radio Weblog", "Guido Casper's Radio Weblog", "Ingo Rammer's DotNetCentric", "Inspirational Technology", "Joel on Software", "Jon's Radio", "Lambda the Ultimate", "Patrick Logan's Radio Weblog", "Peter Drayton's Radio Weblog", "Sam Gentile's Radio Weblog", "Simon Fell", "Snell's Blog", "www.davidwatson.org", ], 'http://radio.weblogs.com/0105685/,Thierry Lalinne' : [ "A Frog in the Valley. Communication + Technologies", "Adam Curry: Adam Curry's Weblog", "Craig Burton: logs, links, ...", "Dave Winer: Radio UserLand", "dive into mark", "Eclecticity: Dan Shafer's Web Log", "Flash Blog", "Free XML tools", "From the Desktop of Dane Carlson", "Garth Kidd: Python", "Google Weblog", "IBM DeveloperWorks: XML News", "Jon's Radio", "Jonathon Delacour", "Keith's Weblog", "Kevin Altis' Radio Weblog", "Lambda the Ultimate", "Les coups de langue de la g...", "Les divagations du pas très...", "Python News", "PythonWare News", "Russ Lipton Documents Radio", "s l a m", "Scripting News", "T Bryce Yehl: PocketBlog.com", "The FuzzyBlog!", "The World Wide Web Consortium", "Zope.org", ], 'http://radio.weblogs.com/0001134/,Dann Sheridan' : [ "80211b News", "Akamai In The News", "Akamai Press Releases", "CNET News.com", "Frontier News", "Geeknews", "iBeta.Org", "IDG InfoWorld", "Joel on Software", "John Robb's Radio Weblog", "kuro5hin.org", "Linux Journal", "New Web Services from SalCentral", "New York Times: Business", "New York Times: Movies", "New York Times: Science", "New York Times: Technology", "News from CNN.com", "Scripting News", "The Motley Fool", "Tomalak's Realm", "Wired News", "X-log", ], 'http://radio.weblogs.com/0100039/,David Brown' : [ "80211b News", "ActiveWin", "Adam Curry: Adam Curry's Weblog", "Adam Curry: BroadBand", "Adam Curry: MTV Chronicles", "AP World News", "CNET News.com", "Dan Gillmor's eJournal", "dangerousmeta!", "Dave Winer: Mind Bombs", "Dave Winer: Radio UserLand", "Daypop Top 40", "Dictionary.com Word of the Day", "Digital Photography Review (dpreview.com)", "FARK", "Hack the Planet", "inessential.com", "it's getting better", "JabberCentral", "Jake's Brainpan", "John Robb's Radio Weblog", "Jon's Radio", "kuro5hin.org", "Liftoff", "Mac OS X Hints", "mac.scripting.com", "macosx News", "Moreover - MLB: Seattle Mariners news", "Moreover - moreover...", "New York Times: National", "New York Times: NYT HomePage", "NPR News", "Patrick Logan's Radio Weblog", "Radio.root Updates", "Salon.com", "Scobleizer", "Scripting News", "Slashdot: News for nerds, stuff that matters", "The Doc Searls Weblog", "The Register", "TidBITS", "tigmarks", "transcendental petroglyphs", "Wes Felter's Radio Weblog", "Wired News", ], 'http://coolstop.com/radio/,Joe Jennet' : [ "...useless miscellany", "a klog apart", "Adam Curry: Adam Curry's Weblog", "Antipixel", "Binary by Accident", "BitWorking", "brilliant corners", "CNET News.com", "Craig Burton: logs, links, life, and lexicon", "Creative Craziness --Pretty Lame Log--", "Fluid Flow", "From the Desktop of Dane Carlson", "gRadio", "inessential.com", "Insomniac's Lounge", "internetnews.com: Top News", "Jonathon Delacour", "Jumpgate Alwin", "kuro5hin.org", "life - listed chronologically", "Loebrich.org", "MyFreePress.com", "ology dot org", "Ordinary-Life.net (A Web Designer's Journey)", "Over the Edge", "painful discharge", "Plastic: Most Recent", "Ralph's Radio", "ResearchBuzz", "Russ Lipton Documents Radio", "s c r e e n m e d i a . c o m", "s l a m", "Scobleizer Radio Weblog", "Scott Greiff's Radio Weblog", "Scripting News", "Snell's Blog", "Stupid Human Tricks", "SunSpot.net News Headlines", "Surf*Mind*Musings", "Surgical Diversions", "Talk Stink!", "Technology", "Tesugen.com", "The Register", "The Shifted Librarian", "thescoop.org", "transcendental petroglyphs", "ViewFromTheHeart", "W. Ian Blanton's Radio Weblog", "webgraphics", "Works in Progress", "YAW!", ], 'http://www.theshiftedlibrarian.com/,Jenny Levine' : [ "...useless miscellany", "80211b News", "Adam Curry: Adam Curry's Weblog", "Alan A. Reiter: Wireless Blogging", "allNetDevices Wireless News", "Arcane Writings", "bOing bOing", "Bryce's Radio Experiments", "C:\PIRILLO.EXE", "Chris Van Buskirk's ITV Weblog", "CNET News.com", "Craig Jordan's Radio Weblog", "Customer Service, a Radio Weblog", "Dan Gillmor's eJournal", "Dave Winer: Radio UserLand", "Daypop Top 40", "diveintomark", "Doc Searls Weblog", "drop.org - community plumbing", "Erehwon Notebook", "Ernest Svenson: Knowledge Management", "Ernie the Attorney", "Flash Blog", "GoUpstate.com News Headlines", "IDG InfoWorld", "Jake Savin: Jake's Radio dev-notes", "Jake Savin: Jake's Radio Tips", "Joel on Software", "John Robb's Radio Weblog", "kuro5hin.org", "LawMeme: Legal Bricolage for a Technological Age", "Library Stuff - Updated daily by Steven M. Cohen", "Library Techlog", "LibraryPlanet.com", "LibTech Weblog", "Lockergnome Bytes", "LucDesk", "Macromedia - Designer Developer Center", "markpasc.blog Headlines", "Matt Goyer - Down with music tariffs", "McGee's Musings", "Memepool", "meryl's notes", "MetaFilter", "Michael Bernstein's Weblog", "Microcontent News", "missingmatter: the other 95% of the universe.", "More Like This WebLog", "mp3 is NOT a crime.org", "New York Times: Technology", "Notes From The Cave", "Paul Mills' Radio Weblog", "PDABuzz.com", "Plastic", "Privacy Digest", "Robert Scoble: Scoble's Radio UserLand 8.0 Weblog", "Robot Wisdom", "Rogi", "Ryan Greene's Radio Weblog", "Salon.com", "SAPL Extra net", "Scobleizer", "Scripting News", "Semantics Archive", "Serious Instructional Technology", "Sjoerd Visscher's weblog - w3future.com", "Slashdot: News for nerds, stuff that matters", "snowdeal.org | conflux", "Steve Pilgrim's Radio Weblog", "The End of Free", "The Peanut Gallery", "TidBITS", "Tomalak's Realm", "Too Much News", "Usable Web", "Waterboro Lib Blog", "weblog.masukomi.org", "WebmasterWorld", "WebReference News", "WebReview.com", "WebWord", "Wired News", "YACCS Comments for The Shifted Librarian", ], 'http://radio.weblogs.com/0100352/,Olivier Travers' : [ "( blogdex : recent )", ".:[ Security-Protocols ]:.", "01net. - Actus Entreprises", "01net. - Actus Internet", "01net. - Actus Net Economie", "01net. - Actus Produits", "01net. - Actus Réseau et Télécoms", "80211b News", "[ tbtf ]", "A Frog in the Valley. Communication + Technologies", "ActiveWin", "Alan A. Reiter: Wireless Blogging", "Alertbox", "allNetDevices Wireless News", "AnandTech Web News", "B2BMarketingBiz", "BetaNews.Com", "Better Living Through Software", "BizReport", "Blogdex: News", "bloggerDev", "bOing bOing", "Burningbird's TechBlog", "Business Week: Global Business", "Business Week: Technology", "Buzz News", "c-est-tout.com", "C:\PIRILLO.EXE", "CamWorld", "ClickZ", "CNET News.com: Perspective", "CommonMe", "Computerworld", "Content Wire", "ContentBlog", "Craig Burton: logs, links, life, and lexicon", "Dan Bricklin's Radio Weblog", "Dan's .NET News & Various Rants", "Darwin", "Dave Winer: Mind Bombs", "Dave's Handsome Radio Blog!", "David Davies' Radio Weblog", "Daypop Top 40", "Daypop Weblog", "decentralization", "deem", "Digital Identity", "Dilbert Daily Strip", "Disenchanted", "Doc Searls Weblog", "Dotcom Scoop", "DotNET-fr", "Doug Kaye: Noise", "Doug Kaye: Web Hosting Strategies", "Doug Kaye: Web Services Strategies", "drop.org - community plumbing", "E-Commerce Times", "Ecademy: user blogs", "Eclecticity: Dan Shafer's Web Log", "Economist: World", "EVHEAD", "Financial Applications Security Weblog", "Fortune.com", "From the Desktop of Dane Carlson", "FuckedCompany.com", "Garth Kidd: Deadly Bloody Serious about Radio UserLand", "Google Weblog", "google-friends", "Grenouille.com", "Hack the Planet", "Hardware.fr", "Harvard Business Review", "inessential.com", "Infolets - Internet Innovations Explored", "Internet Product News", "internetnews.com: ISP News", "Internetweek: In Depth", "Internetweek: Todays News", "iwantmedia.com", "jbond's blog at voidstar.com", "Joel on Software", "John Robb's Radio Weblog", "Jon Udell", "Jon's Radio", "JY's weblog", "Ken Rawlings", "klogs", "Kottke.org", "kuro5hin.org", "Lambda the Ultimate", "lawrence's notebook", "Le Monde Interactif : CyberCulture/Tendances", "Le Monde Interactif : Technologie / Logiciel", "Le Monde Interactif : Technologie / Système et Réseaux", "Line56 - Magazine Articles", "Line56: B2B News", "markpasc.blog", "Memepool", "Microcontent News", "Microsoft TechNet - Security", "Mike's Radio Blogifier", "mikel.org | radio remix", "Moreover - Advertising Age", "Moreover - ASP news", "Moreover - Dot com doom news", "Moreover - E-commerce news", "Moreover - Internet consultancies news", "Moreover - Internet Europe news", "Moreover - Internet: international new", "Moreover - Internet: international news", "Moreover - Microsoft news", "Moreover - moreover...", "Moreover - Online access news", "Moreover - Online marketing news", "Moreover - Online search engines news", "Moreover - The Economist", "Moreover - Vertical portals news", "Most Recent Features and Bug Fixes on Syndic8.com", "new architect", "New Entries at Internet Product Watch", "New Web Services from SalCentral", "New York Times: Business", "New York Times: Technology", "News Is Free: Recent Additions", "newsfeeds", "O'Reilly Network - Wireless Dev Center", "OnDecidingBetter News", "overstated", "Patrick Logan's Radio Weblog", "pdloganManilaSitesCom News", "PeerIntelligence", "Peertal.com", "Peter Drayton's Radio Weblog", "Plastic: Most Recent", "PR Newswire: Technology", "pyRads", "radio-userland", "raelity bytes", "Red Herring", "Reiter's Wireless Data Web Log", "ResearchBuzz KnickKnack Drawer", "ReveNews", "Robert Scoble: Scobleizer Weblog", "Rogue Moon", "Salon.com", "Sam Ruby", "Scobleizer", "Scripting News", "Search Engine World", "Security Focus", "Serious Instructional Technology", "shellen.com :: now fortified with additional Shellens!", "SiliconValley.com", "SiliconValley.com: Mercury News", "Simon Fell", "Sjoerd Visscher's weblog - w3future.com", "Skipping Dot Net", "Slashdot: News for nerds, stuff that matters", "snowdeal.org > ex machina", "snowdeal.org | conflux", "Stanley Daily", "syndic8", "syndication", "Talking Moose", "TechExtreme", "Technology Review - Computers and Electronics", "TechWeb", "TechWeb: E-Business", "TechWeb: Security", "The End of Free", "The Shifted Librarian", "TheFlangyNews News", "Tomalak's Realm", "Traffick", "Transfert", "Transfert - Cyber Société", "Transfert - Net Economie", "Transfert - Technologie", "Trends and Features from CMSWatch", "Usable Web", "Userfriendly by Stapler", "Usernum 1014", "Vakooler", "Washington Post: Business", "Web Services Architect", "Web Services Articles from The Stencil Group", "WebmasterWorld", "WebReference News", "WebVoice", "WebWord", "Winterspeak (Stapled)", "Wolfgang Manousek's Radio Weblog", "WriteTheWeb", "X-log", "XMLAdvantage: Strategic XML News and Intelligence", "Yahoo! News France: Multimédia - Informatique", "Yahoo! News France: Multimédia - Internet", "ZDNet France", "ZDNet Tech News", ], 'http://www.kellogg.nwu.edu/faculty/mcgee/htm/blog/,Jim McGee' : [ "5th Constituency", "a klog apart", "Advogato", "AKMA's Random Thoughts", "Armed and Dangerous", "ARTS & FARCES internet", "Bill Dauphinais' Radio Weblog", "Blog the Organization!", "Blythe's Recorded Reflections", "Buzz Bruggeman's Radio Weblog:", "Carol's Confusion", "Cathy O. Frampton", "Caveat Lector", "Christophe Dessimoz's Radio Weblog", "Colby Maher's Radio Weblog", "Consensus at Lawyerpoint", "Courtney Mohr's Radio Weblog", "Craig Burton: logs, links, life, and lexicon", "Dan Gillmor's eJournal", "Dave Winer: Radio UserLand", "Dave's Handsome Radio Blog!", "David Brown: Radio Python", "Deadly Bloody Serious", "Deborah Baker's Radio Weblog", "Demosthenes Tantalidis' Radio Weblog", "Derrick Senior: Klogging", "diJEST: a journal of extrapreneurial strategy and technology", "dive into mark", "Doc Searls Weblog", "Doug Kaye: Web Hosting Strategies", "Ernest Svenson: Knowledge Management", "Ernie the Attorney", "Fluid Flow", "gRadio", "Greg Harmeyer's KM Weblog", "Hack the Planet", "Internet Product News", "Jake's Brainpan", "jarretthousenorth News", "Jeb Trowbridge's Radio Weblog", "Jed Wallace's Radio Weblog", "Jim McGee: McGee's Musings - TEC924", "Joel on Software", "John Robb's Radio Weblog", "JOHO the Blog", "Jon's Radio", "kuro5hin.org", "laura smith's Radio Weblog", "Line56: B2B News", "Mark Kaczkowski's Radio Weblog", "Mark Paschal: Kit", "McGee's Musings", "Michael A. Olshansky's Radio Weblog", "Michael Fioritto's Radio Weblog", "Microcontent News", "Moreover - moreover...", "New Scientist", "New York Times: Science", "New York Times: Technology", "On The Mark", "OnDecidingBetter News", "onfocus.com : Weblog Bookwatch", "Over the Edge", "Pamela Lu's Radio Weblog", "Paul Holbrook's Radio Weblog", "Privacy Digest", "Ravi Kalluri's Weblog", "ResearchBuzz", "Robert Scoble: Scoble's Radio UserLand 8.0 Weblog", "Robin Barnes' Radio Weblog", "Rory Perry's Radio Weblog", "Russ Lipton Documents Radio", "s l a m", "Sam Ruby", "SATN.org: Comments from Frankston, Reed, and Friends", "Scientific American", "Scobleizer Radio Weblog", "Serious Instructional Technology", "Shantaram Jonnalagadda's Radio Weblog", "Sjoerd Visscher's weblog - w3future.com", "Skipping Dot Net", "Slashdot: News for nerds, stuff that matters", "snowdeal.org | conflux", "Steven Vore: KM", "Steven's Weblog", "The FuzzyBlog!", "The Register", "The Shifted Librarian", "The World Wide Web Consortium", "tins ::: Rick Klau's weblog", "Tomalak's Realm", "tracey wik's Radio Weblog", "Tracy Reeder's Radio Weblog", "Travels with Charlie", "WebReference News", "Werblog", "Windows Informant", "Wired News", "WriteTheWeb", "xBlog: Visual thinking linking | XPLANE", ], 'http://radio.weblogs.com/0100688/,CE Granier' : [ "ActiveWin", "Acts of Volition", "Adam Curry: Adam Curry's Weblog", "Adam Curry: BroadBand", "Adam Curry: CurryDotCom", "AP World News", "BetaNews.Com", "Better Living Through Software", "CNET News.com", "CNET News.com: Personal Technology", "Dave Winer: Radio UserLand", "Dave's Handsome Radio Blog!", "Daypop Top 40", "Dictionary.com Word of the Day", "Digital Photography Review (dpreview.com)", "Dilbert by Stapler", "Doc Searls Weblog", "evectors Radio Tools", "Hack the Planet", "John Robb's Radio Weblog", "Mathieu's Radio Weblog", "Memepool", "More Like This WebLog", "New York Times: Opinion", "New York Times: Technology", "News from CNN.com", "Phil Ackley's Radio Thingumabob", "Quotes of the Day", "Radio.root Updates", "RCTV", "Scobleizer Radio Weblog", "Scripting News", "The Motley Fool", "The Wall Street Transcript", "Tomalak's Realm", "WebReference News", "Windows Informant", "Wired News", "xmlhack", ], 'http://radio.weblogs.com/0100136/,Paul Snively' : [ "Patrick Beard", "A Frog in the Valley. Communication + Technologies", "Aaron Swartz: The Weblog", "Advogato", "All Things Distributed", "bOing bOing", "Dave Winer: Radio UserLand", "David McCusker", "Digital Identity", "Doc Searls Weblog", "Eclectic", "Flutterby!", "freshmeat.net", "From the Desktop of Dane Carlson", "Hack the Planet", "Inspirational Technology", "iRights", "Joel on Software", "John Robb's Radio Weblog", "Jon's Radio", "Lambda the Ultimate", "Living Code", "mac.scripting.com", "osOpinion", "Patrick Logan's Radio Weblog", "Privacy Digest", "Robot Wisdom", "Roland Tanglao's Weblog", "salad with steve", "Scobleizer", "Scripting News", "Sjoerd Visscher's weblog - w3future.com", "TidBITS", "Tomalak's Realm", "Transhumanism", "WebTransmission", "Wired News", "Workbench", "xmlhack", "YACCS Comments for It's Like Déjà Vu All Over Again", ], 'http://radio.weblogs.com/0100367/,Jiri Ludvik' : [ "Better Living Through Software", "Content Wire - Digital Copyright", "DeveloperWorks.com - Security Articles", "Dictionary.com Word of the Day", "Digital Identity", "Digital Identity World", "Financial Applications Security Weblog", "Joel on Software", "Jon's Radio", "Line56: B2B News", "O'Reilly Network Articles", "onlineblog.com", "RISKS Digest", "Scripting News", "SecurityFocus", "Web Services Architect", "WebServices.Org", "Wired News", ], 'http://www.razorsoft.net/weblog/,Peter Drayton' : [ ".NET Musings", ".NET Remoting", "/serdar/", "0xDECAFBAD", "almostperfect", "authorities here are alert.", "Better Living Through Software", "BitWorking", "Cook Computing", "David McCusker", "deem", "Doug Kaye: Web Hosting Strategies", "Doug Kaye: Web Services Strategies", "Google: .NET Remoting", "Gordon Weakliem's Radio Weblog", "Hack the Planet", "In the CLeaR", "Ingo Rammer's DotNetCentric", "It's Like Déjà Vu All Over Again", "IUnknown.com: John Lam's Weblog on Software Development", "Jason Bock", "Jeroen Bekkers' Groove Weblog", "Jim Murphy's Radio Weblog", "Joel on Software", "John Burkhardt", "John Sands' Radio Weblog", "Jon's Radio", "Justin Rudd's Radio Weblog", "Lambda the Ultimate", "Matt Pope's Radio Weblog", "McGee's Musings", "New at XMethods", "Niels Berglund: dm", "O'Reilly Safari", "onfocus.com : Weblog Bookwatch", "Patrick Logan's Radio Weblog", "Quotes of the Day", "raelity bytes", "Sam Gentile's Radio Weblog", "Sam Ruby", "Scobleizer Radio Weblog", "Scripting News", "Simon Fell", "Sjoerd Visscher's weblog - w3future.com", "StronglyTyped - Richard Caetano's weblog on software development", "The .NET Guy", "The Furrygoat Experience", "The Sells Spout", "The Wagner Blog", "Valley of the Geeks", "Wavicle", "Winterdom's Weblog", "Wolfgang Manousek's Radio Weblog", "XML.com", "xmlhack", "YACCS Comments for Peter Drayton's Radio Weblog", ], 'http://radio.weblogs.com/0106046/,Gordon Weakliem' : [ "/serdar/", "0xDECAFBAD", "authorities here are alert.", "BitWorking", "Ingo Rammer's DotNetCentric", "It's Like Déjà Vu All Over Again", "Jim Murphy's Radio Weblog", "Joel on Software", "Jon's Radio", "Justin Rudd's Radio Weblog", "Kevin Altis' Radio Weblog", "Mike's Radio Weblog", "Patrick Logan's Radio Weblog", "Peter Drayton's Radio Weblog", "Sam Gentile's Radio Weblog", "Sam Ruby", "Simon Fell", "The .NET Guy", ], "http://radio.weblogs.com/0100887/,Jon's Radio" : [ "80211b News", "ARTS & FARCES internet", "Blogzilla - a blog about Mozilla", "Business 2.0 - Technology", "Charles Miller: Hacking Radio by Charles Miller", "Content Wire - Digital Copyright", "decentralization", "Digital Identity", "Economist: Books", "Free XML tools", "IBM DeveloperWorks: XML News", "Industrie Toulouse", "InformIT Safari", "internetnews.com: Internet Advertising Report", "jDance", "Jeremy Bowers: Jabber", "Jeroen Bekkers' Groove Weblog", "John Burkhardt", "Jon Schull's Weblog", "Jon's Radio", "Jon's Radio (full-length descriptions)", "Kevin Altis' Radio Weblog", "klogs", "Larry Welkowitz's Radio Weblog", "Latest RFC:s", "Liftoff", "Line56: B2B News", "Linux Magazine", "Macromedia Resource Feed", "Matt Pope's Radio Weblog", "McGee's Musings", "Meatball Wiki", "Moreover - moreover...", "Nature: Human Genetics", "New Scientist", "New Web Services from SalCentral", "New York Times: Business", "New York Times: Technology", "News Is Free: Error 404", "News Is Free: Recent Additions", "O'Reilly Network Python DevCenter", "O'Reilly Safari", "Patrick Logan's Radio Weblog", "Peter Drayton's Radio Weblog", "Privacy Digest Weblog", "Python News", "ResearchBuzz", "Russ Lipton Documents Radio", "s l a m", "Salon: Arts & Entertainment", "Sam Ruby", "Scientific American", "search.cpan.org", "SearchTools News for 2002", "Security Focus", "Simon Fell", "Sjoerd Visscher's weblog - w3future.com", "snowdeal.org > {bio,medical}informatics", "Steven Vore: KM", "syndication", "The GrooveLog", "The World Wide Web Consortium", "Tony Bowden's Radio Weblog", "Voidstar", "Web Voice: online business models and technical marketing - a blog by Olivier Travers", "weblog-devel", "WriteTheWeb", "xmlhack", "Yahoo News Headlines - XML", "Zope Products", "Zope.org", ] } import difflib pb = ''' Radio Social Networking
''' tb = '''

%s

''' tr = ''' ''' te = '''
  %2.2f   %s
''' pe = '''
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
''' pix = 500 s = difflib.SequenceMatcher() print pb for k1 in d.keys(): (k1Url, k1Name) = k1.split(',') print tb % (k1Name, k1Url, k1Name) l = [] for k2 in d.keys(): (k2Url, k2Name) = k2.split(',') s.set_seqs(d[k1],d[k2]) l.append ( tr % ( s.ratio()*100, s.ratio()*pix, pix - s.ratio()*pix, s.ratio(), k2Name, k2Name) ) l.sort() l.reverse() for r in l: print r print te print pe